{"version":3,"file":"static/js/3721_e6bcf0bd412b1c337d8b.js","mappings":"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","sources":["file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/base/common/platform.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/base/common/process.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/base/common/range.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/base/common/resources.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/base/common/scrollable.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/base/common/search.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/base/common/severity.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/base/common/stopwatch.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/base/common/strings.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/base/common/symbols.js"],"sourcesContent":["var _a, _b;\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as nls from '../../nls.js';\nexport const LANGUAGE_DEFAULT = 'en';\nlet _isWindows = false;\nlet _isMacintosh = false;\nlet _isLinux = false;\nlet _isLinuxSnap = false;\nlet _isNative = false;\nlet _isWeb = false;\nlet _isElectron = false;\nlet _isIOS = false;\nlet _isCI = false;\nlet _isMobile = false;\nlet _locale = undefined;\nlet _language = LANGUAGE_DEFAULT;\nlet _platformLocale = LANGUAGE_DEFAULT;\nlet _translationsConfigFile = undefined;\nlet _userAgent = undefined;\nconst $globalThis = globalThis;\nlet nodeProcess = undefined;\nif (typeof $globalThis.vscode !== 'undefined' && typeof $globalThis.vscode.process !== 'undefined') {\n // Native environment (sandboxed)\n nodeProcess = $globalThis.vscode.process;\n}\nelse if (typeof process !== 'undefined' && typeof ((_a = process === null || process === void 0 ? void 0 : process.versions) === null || _a === void 0 ? void 0 : _a.node) === 'string') {\n // Native environment (non-sandboxed)\n nodeProcess = process;\n}\nconst isElectronProcess = typeof ((_b = nodeProcess === null || nodeProcess === void 0 ? void 0 : nodeProcess.versions) === null || _b === void 0 ? void 0 : _b.electron) === 'string';\nconst isElectronRenderer = isElectronProcess && (nodeProcess === null || nodeProcess === void 0 ? void 0 : nodeProcess.type) === 'renderer';\n// Native environment\nif (typeof nodeProcess === 'object') {\n _isWindows = (nodeProcess.platform === 'win32');\n _isMacintosh = (nodeProcess.platform === 'darwin');\n _isLinux = (nodeProcess.platform === 'linux');\n _isLinuxSnap = _isLinux && !!nodeProcess.env['SNAP'] && !!nodeProcess.env['SNAP_REVISION'];\n _isElectron = isElectronProcess;\n _isCI = !!nodeProcess.env['CI'] || !!nodeProcess.env['BUILD_ARTIFACTSTAGINGDIRECTORY'];\n _locale = LANGUAGE_DEFAULT;\n _language = LANGUAGE_DEFAULT;\n const rawNlsConfig = nodeProcess.env['VSCODE_NLS_CONFIG'];\n if (rawNlsConfig) {\n try {\n const nlsConfig = JSON.parse(rawNlsConfig);\n const resolved = nlsConfig.availableLanguages['*'];\n _locale = nlsConfig.locale;\n _platformLocale = nlsConfig.osLocale;\n // VSCode's default language is 'en'\n _language = resolved ? resolved : LANGUAGE_DEFAULT;\n _translationsConfigFile = nlsConfig._translationsConfigFile;\n }\n catch (e) {\n }\n }\n _isNative = true;\n}\n// Web environment\nelse if (typeof navigator === 'object' && !isElectronRenderer) {\n _userAgent = navigator.userAgent;\n _isWindows = _userAgent.indexOf('Windows') >= 0;\n _isMacintosh = _userAgent.indexOf('Macintosh') >= 0;\n _isIOS = (_userAgent.indexOf('Macintosh') >= 0 || _userAgent.indexOf('iPad') >= 0 || _userAgent.indexOf('iPhone') >= 0) && !!navigator.maxTouchPoints && navigator.maxTouchPoints > 0;\n _isLinux = _userAgent.indexOf('Linux') >= 0;\n _isMobile = (_userAgent === null || _userAgent === void 0 ? void 0 : _userAgent.indexOf('Mobi')) >= 0;\n _isWeb = true;\n const configuredLocale = nls.getConfiguredDefaultLocale(\n // This call _must_ be done in the file that calls `nls.getConfiguredDefaultLocale`\n // to ensure that the NLS AMD Loader plugin has been loaded and configured.\n // This is because the loader plugin decides what the default locale is based on\n // how it's able to resolve the strings.\n nls.localize({ key: 'ensureLoaderPluginIsLoaded', comment: ['{Locked}'] }, '_'));\n _locale = configuredLocale || LANGUAGE_DEFAULT;\n _language = _locale;\n _platformLocale = navigator.language;\n}\n// Unknown environment\nelse {\n console.error('Unable to resolve platform.');\n}\nlet _platform = 0 /* Platform.Web */;\nif (_isMacintosh) {\n _platform = 1 /* Platform.Mac */;\n}\nelse if (_isWindows) {\n _platform = 3 /* Platform.Windows */;\n}\nelse if (_isLinux) {\n _platform = 2 /* Platform.Linux */;\n}\nexport const isWindows = _isWindows;\nexport const isMacintosh = _isMacintosh;\nexport const isLinux = _isLinux;\nexport const isNative = _isNative;\nexport const isWeb = _isWeb;\nexport const isWebWorker = (_isWeb && typeof $globalThis.importScripts === 'function');\nexport const webWorkerOrigin = isWebWorker ? $globalThis.origin : undefined;\nexport const isIOS = _isIOS;\nexport const isMobile = _isMobile;\nexport const userAgent = _userAgent;\n/**\n * The language used for the user interface. The format of\n * the string is all lower case (e.g. zh-tw for Traditional\n * Chinese)\n */\nexport const language = _language;\nexport const setTimeout0IsFaster = (typeof $globalThis.postMessage === 'function' && !$globalThis.importScripts);\n/**\n * See https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#:~:text=than%204%2C%20then-,set%20timeout%20to%204,-.\n *\n * Works similarly to `setTimeout(0)` but doesn't suffer from the 4ms artificial delay\n * that browsers set when the nesting level is > 5.\n */\nexport const setTimeout0 = (() => {\n if (setTimeout0IsFaster) {\n const pending = [];\n $globalThis.addEventListener('message', (e) => {\n if (e.data && e.data.vscodeScheduleAsyncWork) {\n for (let i = 0, len = pending.length; i < len; i++) {\n const candidate = pending[i];\n if (candidate.id === e.data.vscodeScheduleAsyncWork) {\n pending.splice(i, 1);\n candidate.callback();\n return;\n }\n }\n }\n });\n let lastId = 0;\n return (callback) => {\n const myId = ++lastId;\n pending.push({\n id: myId,\n callback: callback\n });\n $globalThis.postMessage({ vscodeScheduleAsyncWork: myId }, '*');\n };\n }\n return (callback) => setTimeout(callback);\n})();\nexport const OS = (_isMacintosh || _isIOS ? 2 /* OperatingSystem.Macintosh */ : (_isWindows ? 1 /* OperatingSystem.Windows */ : 3 /* OperatingSystem.Linux */));\nlet _isLittleEndian = true;\nlet _isLittleEndianComputed = false;\nexport function isLittleEndian() {\n if (!_isLittleEndianComputed) {\n _isLittleEndianComputed = true;\n const test = new Uint8Array(2);\n test[0] = 1;\n test[1] = 2;\n const view = new Uint16Array(test.buffer);\n _isLittleEndian = (view[0] === (2 << 8) + 1);\n }\n return _isLittleEndian;\n}\nexport const isChrome = !!(userAgent && userAgent.indexOf('Chrome') >= 0);\nexport const isFirefox = !!(userAgent && userAgent.indexOf('Firefox') >= 0);\nexport const isSafari = !!(!isChrome && (userAgent && userAgent.indexOf('Safari') >= 0));\nexport const isEdge = !!(userAgent && userAgent.indexOf('Edg/') >= 0);\nexport const isAndroid = !!(userAgent && userAgent.indexOf('Android') >= 0);\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { isMacintosh, isWindows } from './platform.js';\nlet safeProcess;\n// Native sandbox environment\nconst vscodeGlobal = globalThis.vscode;\nif (typeof vscodeGlobal !== 'undefined' && typeof vscodeGlobal.process !== 'undefined') {\n const sandboxProcess = vscodeGlobal.process;\n safeProcess = {\n get platform() { return sandboxProcess.platform; },\n get arch() { return sandboxProcess.arch; },\n get env() { return sandboxProcess.env; },\n cwd() { return sandboxProcess.cwd(); }\n };\n}\n// Native node.js environment\nelse if (typeof process !== 'undefined') {\n safeProcess = {\n get platform() { return process.platform; },\n get arch() { return process.arch; },\n get env() { return process.env; },\n cwd() { return process.env['VSCODE_CWD'] || process.cwd(); }\n };\n}\n// Web environment\nelse {\n safeProcess = {\n // Supported\n get platform() { return isWindows ? 'win32' : isMacintosh ? 'darwin' : 'linux'; },\n get arch() { return undefined; /* arch is undefined in web */ },\n // Unsupported\n get env() { return {}; },\n cwd() { return '/'; }\n };\n}\n/**\n * Provides safe access to the `cwd` property in node.js, sandboxed or web\n * environments.\n *\n * Note: in web, this property is hardcoded to be `/`.\n *\n * @skipMangle\n */\nexport const cwd = safeProcess.cwd;\n/**\n * Provides safe access to the `env` property in node.js, sandboxed or web\n * environments.\n *\n * Note: in web, this property is hardcoded to be `{}`.\n */\nexport const env = safeProcess.env;\n/**\n * Provides safe access to the `platform` property in node.js, sandboxed or web\n * environments.\n */\nexport const platform = safeProcess.platform;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport var Range;\n(function (Range) {\n /**\n * Returns the intersection between two ranges as a range itself.\n * Returns `{ start: 0, end: 0 }` if the intersection is empty.\n */\n function intersect(one, other) {\n if (one.start >= other.end || other.start >= one.end) {\n return { start: 0, end: 0 };\n }\n const start = Math.max(one.start, other.start);\n const end = Math.min(one.end, other.end);\n if (end - start <= 0) {\n return { start: 0, end: 0 };\n }\n return { start, end };\n }\n Range.intersect = intersect;\n function isEmpty(range) {\n return range.end - range.start <= 0;\n }\n Range.isEmpty = isEmpty;\n function intersects(one, other) {\n return !isEmpty(intersect(one, other));\n }\n Range.intersects = intersects;\n function relativeComplement(one, other) {\n const result = [];\n const first = { start: one.start, end: Math.min(other.start, one.end) };\n const second = { start: Math.max(other.end, one.start), end: one.end };\n if (!isEmpty(first)) {\n result.push(first);\n }\n if (!isEmpty(second)) {\n result.push(second);\n }\n return result;\n }\n Range.relativeComplement = relativeComplement;\n})(Range || (Range = {}));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as extpath from './extpath.js';\nimport { Schemas } from './network.js';\nimport * as paths from './path.js';\nimport { isLinux, isWindows } from './platform.js';\nimport { compare as strCompare, equalsIgnoreCase } from './strings.js';\nimport { URI, uriToFsPath } from './uri.js';\nexport function originalFSPath(uri) {\n return uriToFsPath(uri, true);\n}\nexport class ExtUri {\n constructor(_ignorePathCasing) {\n this._ignorePathCasing = _ignorePathCasing;\n }\n compare(uri1, uri2, ignoreFragment = false) {\n if (uri1 === uri2) {\n return 0;\n }\n return strCompare(this.getComparisonKey(uri1, ignoreFragment), this.getComparisonKey(uri2, ignoreFragment));\n }\n isEqual(uri1, uri2, ignoreFragment = false) {\n if (uri1 === uri2) {\n return true;\n }\n if (!uri1 || !uri2) {\n return false;\n }\n return this.getComparisonKey(uri1, ignoreFragment) === this.getComparisonKey(uri2, ignoreFragment);\n }\n getComparisonKey(uri, ignoreFragment = false) {\n return uri.with({\n path: this._ignorePathCasing(uri) ? uri.path.toLowerCase() : undefined,\n fragment: ignoreFragment ? null : undefined\n }).toString();\n }\n isEqualOrParent(base, parentCandidate, ignoreFragment = false) {\n if (base.scheme === parentCandidate.scheme) {\n if (base.scheme === Schemas.file) {\n return extpath.isEqualOrParent(originalFSPath(base), originalFSPath(parentCandidate), this._ignorePathCasing(base)) && base.query === parentCandidate.query && (ignoreFragment || base.fragment === parentCandidate.fragment);\n }\n if (isEqualAuthority(base.authority, parentCandidate.authority)) {\n return extpath.isEqualOrParent(base.path, parentCandidate.path, this._ignorePathCasing(base), '/') && base.query === parentCandidate.query && (ignoreFragment || base.fragment === parentCandidate.fragment);\n }\n }\n return false;\n }\n // --- path math\n joinPath(resource, ...pathFragment) {\n return URI.joinPath(resource, ...pathFragment);\n }\n basenameOrAuthority(resource) {\n return basename(resource) || resource.authority;\n }\n basename(resource) {\n return paths.posix.basename(resource.path);\n }\n extname(resource) {\n return paths.posix.extname(resource.path);\n }\n dirname(resource) {\n if (resource.path.length === 0) {\n return resource;\n }\n let dirname;\n if (resource.scheme === Schemas.file) {\n dirname = URI.file(paths.dirname(originalFSPath(resource))).path;\n }\n else {\n dirname = paths.posix.dirname(resource.path);\n if (resource.authority && dirname.length && dirname.charCodeAt(0) !== 47 /* CharCode.Slash */) {\n console.error(`dirname(\"${resource.toString})) resulted in a relative path`);\n dirname = '/'; // If a URI contains an authority component, then the path component must either be empty or begin with a CharCode.Slash (\"/\") character\n }\n }\n return resource.with({\n path: dirname\n });\n }\n normalizePath(resource) {\n if (!resource.path.length) {\n return resource;\n }\n let normalizedPath;\n if (resource.scheme === Schemas.file) {\n normalizedPath = URI.file(paths.normalize(originalFSPath(resource))).path;\n }\n else {\n normalizedPath = paths.posix.normalize(resource.path);\n }\n return resource.with({\n path: normalizedPath\n });\n }\n relativePath(from, to) {\n if (from.scheme !== to.scheme || !isEqualAuthority(from.authority, to.authority)) {\n return undefined;\n }\n if (from.scheme === Schemas.file) {\n const relativePath = paths.relative(originalFSPath(from), originalFSPath(to));\n return isWindows ? extpath.toSlashes(relativePath) : relativePath;\n }\n let fromPath = from.path || '/';\n const toPath = to.path || '/';\n if (this._ignorePathCasing(from)) {\n // make casing of fromPath match toPath\n let i = 0;\n for (const len = Math.min(fromPath.length, toPath.length); i < len; i++) {\n if (fromPath.charCodeAt(i) !== toPath.charCodeAt(i)) {\n if (fromPath.charAt(i).toLowerCase() !== toPath.charAt(i).toLowerCase()) {\n break;\n }\n }\n }\n fromPath = toPath.substr(0, i) + fromPath.substr(i);\n }\n return paths.posix.relative(fromPath, toPath);\n }\n resolvePath(base, path) {\n if (base.scheme === Schemas.file) {\n const newURI = URI.file(paths.resolve(originalFSPath(base), path));\n return base.with({\n authority: newURI.authority,\n path: newURI.path\n });\n }\n path = extpath.toPosixPath(path); // we allow path to be a windows path\n return base.with({\n path: paths.posix.resolve(base.path, path)\n });\n }\n // --- misc\n isAbsolutePath(resource) {\n return !!resource.path && resource.path[0] === '/';\n }\n isEqualAuthority(a1, a2) {\n return a1 === a2 || (a1 !== undefined && a2 !== undefined && equalsIgnoreCase(a1, a2));\n }\n hasTrailingPathSeparator(resource, sep = paths.sep) {\n if (resource.scheme === Schemas.file) {\n const fsp = originalFSPath(resource);\n return fsp.length > extpath.getRoot(fsp).length && fsp[fsp.length - 1] === sep;\n }\n else {\n const p = resource.path;\n return (p.length > 1 && p.charCodeAt(p.length - 1) === 47 /* CharCode.Slash */) && !(/^[a-zA-Z]:(\\/$|\\\\$)/.test(resource.fsPath)); // ignore the slash at offset 0\n }\n }\n removeTrailingPathSeparator(resource, sep = paths.sep) {\n // Make sure that the path isn't a drive letter. A trailing separator there is not removable.\n if (hasTrailingPathSeparator(resource, sep)) {\n return resource.with({ path: resource.path.substr(0, resource.path.length - 1) });\n }\n return resource;\n }\n addTrailingPathSeparator(resource, sep = paths.sep) {\n let isRootSep = false;\n if (resource.scheme === Schemas.file) {\n const fsp = originalFSPath(resource);\n isRootSep = ((fsp !== undefined) && (fsp.length === extpath.getRoot(fsp).length) && (fsp[fsp.length - 1] === sep));\n }\n else {\n sep = '/';\n const p = resource.path;\n isRootSep = p.length === 1 && p.charCodeAt(p.length - 1) === 47 /* CharCode.Slash */;\n }\n if (!isRootSep && !hasTrailingPathSeparator(resource, sep)) {\n return resource.with({ path: resource.path + '/' });\n }\n return resource;\n }\n}\n/**\n * Unbiased utility that takes uris \"as they are\". This means it can be interchanged with\n * uri#toString() usages. The following is true\n * ```\n * assertEqual(aUri.toString() === bUri.toString(), exturi.isEqual(aUri, bUri))\n * ```\n */\nexport const extUri = new ExtUri(() => false);\n/**\n * BIASED utility that _mostly_ ignored the case of urs paths. ONLY use this util if you\n * understand what you are doing.\n *\n * This utility is INCOMPATIBLE with `uri.toString()`-usages and both CANNOT be used interchanged.\n *\n * When dealing with uris from files or documents, `extUri` (the unbiased friend)is sufficient\n * because those uris come from a \"trustworthy source\". When creating unknown uris it's always\n * better to use `IUriIdentityService` which exposes an `IExtUri`-instance which knows when path\n * casing matters.\n */\nexport const extUriBiasedIgnorePathCase = new ExtUri(uri => {\n // A file scheme resource is in the same platform as code, so ignore case for non linux platforms\n // Resource can be from another platform. Lowering the case as an hack. Should come from File system provider\n return uri.scheme === Schemas.file ? !isLinux : true;\n});\n/**\n * BIASED utility that always ignores the casing of uris paths. ONLY use this util if you\n * understand what you are doing.\n *\n * This utility is INCOMPATIBLE with `uri.toString()`-usages and both CANNOT be used interchanged.\n *\n * When dealing with uris from files or documents, `extUri` (the unbiased friend)is sufficient\n * because those uris come from a \"trustworthy source\". When creating unknown uris it's always\n * better to use `IUriIdentityService` which exposes an `IExtUri`-instance which knows when path\n * casing matters.\n */\nexport const extUriIgnorePathCase = new ExtUri(_ => true);\nexport const isEqual = extUri.isEqual.bind(extUri);\nexport const isEqualOrParent = extUri.isEqualOrParent.bind(extUri);\nexport const getComparisonKey = extUri.getComparisonKey.bind(extUri);\nexport const basenameOrAuthority = extUri.basenameOrAuthority.bind(extUri);\nexport const basename = extUri.basename.bind(extUri);\nexport const extname = extUri.extname.bind(extUri);\nexport const dirname = extUri.dirname.bind(extUri);\nexport const joinPath = extUri.joinPath.bind(extUri);\nexport const normalizePath = extUri.normalizePath.bind(extUri);\nexport const relativePath = extUri.relativePath.bind(extUri);\nexport const resolvePath = extUri.resolvePath.bind(extUri);\nexport const isAbsolutePath = extUri.isAbsolutePath.bind(extUri);\nexport const isEqualAuthority = extUri.isEqualAuthority.bind(extUri);\nexport const hasTrailingPathSeparator = extUri.hasTrailingPathSeparator.bind(extUri);\nexport const removeTrailingPathSeparator = extUri.removeTrailingPathSeparator.bind(extUri);\nexport const addTrailingPathSeparator = extUri.addTrailingPathSeparator.bind(extUri);\n/**\n * Data URI related helpers.\n */\nexport var DataUri;\n(function (DataUri) {\n DataUri.META_DATA_LABEL = 'label';\n DataUri.META_DATA_DESCRIPTION = 'description';\n DataUri.META_DATA_SIZE = 'size';\n DataUri.META_DATA_MIME = 'mime';\n function parseMetaData(dataUri) {\n const metadata = new Map();\n // Given a URI of: data:image/png;size:2313;label:SomeLabel;description:SomeDescription;base64,77+9UE5...\n // the metadata is: size:2313;label:SomeLabel;description:SomeDescription\n const meta = dataUri.path.substring(dataUri.path.indexOf(';') + 1, dataUri.path.lastIndexOf(';'));\n meta.split(';').forEach(property => {\n const [key, value] = property.split(':');\n if (key && value) {\n metadata.set(key, value);\n }\n });\n // Given a URI of: data:image/png;size:2313;label:SomeLabel;description:SomeDescription;base64,77+9UE5...\n // the mime is: image/png\n const mime = dataUri.path.substring(0, dataUri.path.indexOf(';'));\n if (mime) {\n metadata.set(DataUri.META_DATA_MIME, mime);\n }\n return metadata;\n }\n DataUri.parseMetaData = parseMetaData;\n})(DataUri || (DataUri = {}));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Emitter } from './event.js';\nimport { Disposable } from './lifecycle.js';\nexport class ScrollState {\n constructor(_forceIntegerValues, width, scrollWidth, scrollLeft, height, scrollHeight, scrollTop) {\n this._forceIntegerValues = _forceIntegerValues;\n this._scrollStateBrand = undefined;\n if (this._forceIntegerValues) {\n width = width | 0;\n scrollWidth = scrollWidth | 0;\n scrollLeft = scrollLeft | 0;\n height = height | 0;\n scrollHeight = scrollHeight | 0;\n scrollTop = scrollTop | 0;\n }\n this.rawScrollLeft = scrollLeft; // before validation\n this.rawScrollTop = scrollTop; // before validation\n if (width < 0) {\n width = 0;\n }\n if (scrollLeft + width > scrollWidth) {\n scrollLeft = scrollWidth - width;\n }\n if (scrollLeft < 0) {\n scrollLeft = 0;\n }\n if (height < 0) {\n height = 0;\n }\n if (scrollTop + height > scrollHeight) {\n scrollTop = scrollHeight - height;\n }\n if (scrollTop < 0) {\n scrollTop = 0;\n }\n this.width = width;\n this.scrollWidth = scrollWidth;\n this.scrollLeft = scrollLeft;\n this.height = height;\n this.scrollHeight = scrollHeight;\n this.scrollTop = scrollTop;\n }\n equals(other) {\n return (this.rawScrollLeft === other.rawScrollLeft\n && this.rawScrollTop === other.rawScrollTop\n && this.width === other.width\n && this.scrollWidth === other.scrollWidth\n && this.scrollLeft === other.scrollLeft\n && this.height === other.height\n && this.scrollHeight === other.scrollHeight\n && this.scrollTop === other.scrollTop);\n }\n withScrollDimensions(update, useRawScrollPositions) {\n return new ScrollState(this._forceIntegerValues, (typeof update.width !== 'undefined' ? update.width : this.width), (typeof update.scrollWidth !== 'undefined' ? update.scrollWidth : this.scrollWidth), useRawScrollPositions ? this.rawScrollLeft : this.scrollLeft, (typeof update.height !== 'undefined' ? update.height : this.height), (typeof update.scrollHeight !== 'undefined' ? update.scrollHeight : this.scrollHeight), useRawScrollPositions ? this.rawScrollTop : this.scrollTop);\n }\n withScrollPosition(update) {\n return new ScrollState(this._forceIntegerValues, this.width, this.scrollWidth, (typeof update.scrollLeft !== 'undefined' ? update.scrollLeft : this.rawScrollLeft), this.height, this.scrollHeight, (typeof update.scrollTop !== 'undefined' ? update.scrollTop : this.rawScrollTop));\n }\n createScrollEvent(previous, inSmoothScrolling) {\n const widthChanged = (this.width !== previous.width);\n const scrollWidthChanged = (this.scrollWidth !== previous.scrollWidth);\n const scrollLeftChanged = (this.scrollLeft !== previous.scrollLeft);\n const heightChanged = (this.height !== previous.height);\n const scrollHeightChanged = (this.scrollHeight !== previous.scrollHeight);\n const scrollTopChanged = (this.scrollTop !== previous.scrollTop);\n return {\n inSmoothScrolling: inSmoothScrolling,\n oldWidth: previous.width,\n oldScrollWidth: previous.scrollWidth,\n oldScrollLeft: previous.scrollLeft,\n width: this.width,\n scrollWidth: this.scrollWidth,\n scrollLeft: this.scrollLeft,\n oldHeight: previous.height,\n oldScrollHeight: previous.scrollHeight,\n oldScrollTop: previous.scrollTop,\n height: this.height,\n scrollHeight: this.scrollHeight,\n scrollTop: this.scrollTop,\n widthChanged: widthChanged,\n scrollWidthChanged: scrollWidthChanged,\n scrollLeftChanged: scrollLeftChanged,\n heightChanged: heightChanged,\n scrollHeightChanged: scrollHeightChanged,\n scrollTopChanged: scrollTopChanged,\n };\n }\n}\nexport class Scrollable extends Disposable {\n constructor(options) {\n super();\n this._scrollableBrand = undefined;\n this._onScroll = this._register(new Emitter());\n this.onScroll = this._onScroll.event;\n this._smoothScrollDuration = options.smoothScrollDuration;\n this._scheduleAtNextAnimationFrame = options.scheduleAtNextAnimationFrame;\n this._state = new ScrollState(options.forceIntegerValues, 0, 0, 0, 0, 0, 0);\n this._smoothScrolling = null;\n }\n dispose() {\n if (this._smoothScrolling) {\n this._smoothScrolling.dispose();\n this._smoothScrolling = null;\n }\n super.dispose();\n }\n setSmoothScrollDuration(smoothScrollDuration) {\n this._smoothScrollDuration = smoothScrollDuration;\n }\n validateScrollPosition(scrollPosition) {\n return this._state.withScrollPosition(scrollPosition);\n }\n getScrollDimensions() {\n return this._state;\n }\n setScrollDimensions(dimensions, useRawScrollPositions) {\n var _a;\n const newState = this._state.withScrollDimensions(dimensions, useRawScrollPositions);\n this._setState(newState, Boolean(this._smoothScrolling));\n // Validate outstanding animated scroll position target\n (_a = this._smoothScrolling) === null || _a === void 0 ? void 0 : _a.acceptScrollDimensions(this._state);\n }\n /**\n * Returns the final scroll position that the instance will have once the smooth scroll animation concludes.\n * If no scroll animation is occurring, it will return the current scroll position instead.\n */\n getFutureScrollPosition() {\n if (this._smoothScrolling) {\n return this._smoothScrolling.to;\n }\n return this._state;\n }\n /**\n * Returns the current scroll position.\n * Note: This result might be an intermediate scroll position, as there might be an ongoing smooth scroll animation.\n */\n getCurrentScrollPosition() {\n return this._state;\n }\n setScrollPositionNow(update) {\n // no smooth scrolling requested\n const newState = this._state.withScrollPosition(update);\n // Terminate any outstanding smooth scrolling\n if (this._smoothScrolling) {\n this._smoothScrolling.dispose();\n this._smoothScrolling = null;\n }\n this._setState(newState, false);\n }\n setScrollPositionSmooth(update, reuseAnimation) {\n if (this._smoothScrollDuration === 0) {\n // Smooth scrolling not supported.\n return this.setScrollPositionNow(update);\n }\n if (this._smoothScrolling) {\n // Combine our pending scrollLeft/scrollTop with incoming scrollLeft/scrollTop\n update = {\n scrollLeft: (typeof update.scrollLeft === 'undefined' ? this._smoothScrolling.to.scrollLeft : update.scrollLeft),\n scrollTop: (typeof update.scrollTop === 'undefined' ? this._smoothScrolling.to.scrollTop : update.scrollTop)\n };\n // Validate `update`\n const validTarget = this._state.withScrollPosition(update);\n if (this._smoothScrolling.to.scrollLeft === validTarget.scrollLeft && this._smoothScrolling.to.scrollTop === validTarget.scrollTop) {\n // No need to interrupt or extend the current animation since we're going to the same place\n return;\n }\n let newSmoothScrolling;\n if (reuseAnimation) {\n newSmoothScrolling = new SmoothScrollingOperation(this._smoothScrolling.from, validTarget, this._smoothScrolling.startTime, this._smoothScrolling.duration);\n }\n else {\n newSmoothScrolling = this._smoothScrolling.combine(this._state, validTarget, this._smoothScrollDuration);\n }\n this._smoothScrolling.dispose();\n this._smoothScrolling = newSmoothScrolling;\n }\n else {\n // Validate `update`\n const validTarget = this._state.withScrollPosition(update);\n this._smoothScrolling = SmoothScrollingOperation.start(this._state, validTarget, this._smoothScrollDuration);\n }\n // Begin smooth scrolling animation\n this._smoothScrolling.animationFrameDisposable = this._scheduleAtNextAnimationFrame(() => {\n if (!this._smoothScrolling) {\n return;\n }\n this._smoothScrolling.animationFrameDisposable = null;\n this._performSmoothScrolling();\n });\n }\n hasPendingScrollAnimation() {\n return Boolean(this._smoothScrolling);\n }\n _performSmoothScrolling() {\n if (!this._smoothScrolling) {\n return;\n }\n const update = this._smoothScrolling.tick();\n const newState = this._state.withScrollPosition(update);\n this._setState(newState, true);\n if (!this._smoothScrolling) {\n // Looks like someone canceled the smooth scrolling\n // from the scroll event handler\n return;\n }\n if (update.isDone) {\n this._smoothScrolling.dispose();\n this._smoothScrolling = null;\n return;\n }\n // Continue smooth scrolling animation\n this._smoothScrolling.animationFrameDisposable = this._scheduleAtNextAnimationFrame(() => {\n if (!this._smoothScrolling) {\n return;\n }\n this._smoothScrolling.animationFrameDisposable = null;\n this._performSmoothScrolling();\n });\n }\n _setState(newState, inSmoothScrolling) {\n const oldState = this._state;\n if (oldState.equals(newState)) {\n // no change\n return;\n }\n this._state = newState;\n this._onScroll.fire(this._state.createScrollEvent(oldState, inSmoothScrolling));\n }\n}\nexport class SmoothScrollingUpdate {\n constructor(scrollLeft, scrollTop, isDone) {\n this.scrollLeft = scrollLeft;\n this.scrollTop = scrollTop;\n this.isDone = isDone;\n }\n}\nfunction createEaseOutCubic(from, to) {\n const delta = to - from;\n return function (completion) {\n return from + delta * easeOutCubic(completion);\n };\n}\nfunction createComposed(a, b, cut) {\n return function (completion) {\n if (completion < cut) {\n return a(completion / cut);\n }\n return b((completion - cut) / (1 - cut));\n };\n}\nexport class SmoothScrollingOperation {\n constructor(from, to, startTime, duration) {\n this.from = from;\n this.to = to;\n this.duration = duration;\n this.startTime = startTime;\n this.animationFrameDisposable = null;\n this._initAnimations();\n }\n _initAnimations() {\n this.scrollLeft = this._initAnimation(this.from.scrollLeft, this.to.scrollLeft, this.to.width);\n this.scrollTop = this._initAnimation(this.from.scrollTop, this.to.scrollTop, this.to.height);\n }\n _initAnimation(from, to, viewportSize) {\n const delta = Math.abs(from - to);\n if (delta > 2.5 * viewportSize) {\n let stop1, stop2;\n if (from < to) {\n // scroll to 75% of the viewportSize\n stop1 = from + 0.75 * viewportSize;\n stop2 = to - 0.75 * viewportSize;\n }\n else {\n stop1 = from - 0.75 * viewportSize;\n stop2 = to + 0.75 * viewportSize;\n }\n return createComposed(createEaseOutCubic(from, stop1), createEaseOutCubic(stop2, to), 0.33);\n }\n return createEaseOutCubic(from, to);\n }\n dispose() {\n if (this.animationFrameDisposable !== null) {\n this.animationFrameDisposable.dispose();\n this.animationFrameDisposable = null;\n }\n }\n acceptScrollDimensions(state) {\n this.to = state.withScrollPosition(this.to);\n this._initAnimations();\n }\n tick() {\n return this._tick(Date.now());\n }\n _tick(now) {\n const completion = (now - this.startTime) / this.duration;\n if (completion < 1) {\n const newScrollLeft = this.scrollLeft(completion);\n const newScrollTop = this.scrollTop(completion);\n return new SmoothScrollingUpdate(newScrollLeft, newScrollTop, false);\n }\n return new SmoothScrollingUpdate(this.to.scrollLeft, this.to.scrollTop, true);\n }\n combine(from, to, duration) {\n return SmoothScrollingOperation.start(from, to, duration);\n }\n static start(from, to, duration) {\n // +10 / -10 : pretend the animation already started for a quicker response to a scroll request\n duration = duration + 10;\n const startTime = Date.now() - 10;\n return new SmoothScrollingOperation(from, to, startTime, duration);\n }\n}\nfunction easeInCubic(t) {\n return Math.pow(t, 3);\n}\nfunction easeOutCubic(t) {\n return 1 - easeInCubic(1 - t);\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as strings from './strings.js';\nexport function buildReplaceStringWithCasePreserved(matches, pattern) {\n if (matches && (matches[0] !== '')) {\n const containsHyphens = validateSpecificSpecialCharacter(matches, pattern, '-');\n const containsUnderscores = validateSpecificSpecialCharacter(matches, pattern, '_');\n if (containsHyphens && !containsUnderscores) {\n return buildReplaceStringForSpecificSpecialCharacter(matches, pattern, '-');\n }\n else if (!containsHyphens && containsUnderscores) {\n return buildReplaceStringForSpecificSpecialCharacter(matches, pattern, '_');\n }\n if (matches[0].toUpperCase() === matches[0]) {\n return pattern.toUpperCase();\n }\n else if (matches[0].toLowerCase() === matches[0]) {\n return pattern.toLowerCase();\n }\n else if (strings.containsUppercaseCharacter(matches[0][0]) && pattern.length > 0) {\n return pattern[0].toUpperCase() + pattern.substr(1);\n }\n else if (matches[0][0].toUpperCase() !== matches[0][0] && pattern.length > 0) {\n return pattern[0].toLowerCase() + pattern.substr(1);\n }\n else {\n // we don't understand its pattern yet.\n return pattern;\n }\n }\n else {\n return pattern;\n }\n}\nfunction validateSpecificSpecialCharacter(matches, pattern, specialCharacter) {\n const doesContainSpecialCharacter = matches[0].indexOf(specialCharacter) !== -1 && pattern.indexOf(specialCharacter) !== -1;\n return doesContainSpecialCharacter && matches[0].split(specialCharacter).length === pattern.split(specialCharacter).length;\n}\nfunction buildReplaceStringForSpecificSpecialCharacter(matches, pattern, specialCharacter) {\n const splitPatternAtSpecialCharacter = pattern.split(specialCharacter);\n const splitMatchAtSpecialCharacter = matches[0].split(specialCharacter);\n let replaceString = '';\n splitPatternAtSpecialCharacter.forEach((splitValue, index) => {\n replaceString += buildReplaceStringWithCasePreserved([splitMatchAtSpecialCharacter[index]], splitValue) + specialCharacter;\n });\n return replaceString.slice(0, -1);\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as strings from './strings.js';\nvar Severity;\n(function (Severity) {\n Severity[Severity[\"Ignore\"] = 0] = \"Ignore\";\n Severity[Severity[\"Info\"] = 1] = \"Info\";\n Severity[Severity[\"Warning\"] = 2] = \"Warning\";\n Severity[Severity[\"Error\"] = 3] = \"Error\";\n})(Severity || (Severity = {}));\n(function (Severity) {\n const _error = 'error';\n const _warning = 'warning';\n const _warn = 'warn';\n const _info = 'info';\n const _ignore = 'ignore';\n /**\n * Parses 'error', 'warning', 'warn', 'info' in call casings\n * and falls back to ignore.\n */\n function fromValue(value) {\n if (!value) {\n return Severity.Ignore;\n }\n if (strings.equalsIgnoreCase(_error, value)) {\n return Severity.Error;\n }\n if (strings.equalsIgnoreCase(_warning, value) || strings.equalsIgnoreCase(_warn, value)) {\n return Severity.Warning;\n }\n if (strings.equalsIgnoreCase(_info, value)) {\n return Severity.Info;\n }\n return Severity.Ignore;\n }\n Severity.fromValue = fromValue;\n function toString(severity) {\n switch (severity) {\n case Severity.Error: return _error;\n case Severity.Warning: return _warning;\n case Severity.Info: return _info;\n default: return _ignore;\n }\n }\n Severity.toString = toString;\n})(Severity || (Severity = {}));\nexport default Severity;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nconst hasPerformanceNow = (globalThis.performance && typeof globalThis.performance.now === 'function');\nexport class StopWatch {\n static create(highResolution) {\n return new StopWatch(highResolution);\n }\n constructor(highResolution) {\n this._now = hasPerformanceNow && highResolution === false ? Date.now : globalThis.performance.now.bind(globalThis.performance);\n this._startTime = this._now();\n this._stopTime = -1;\n }\n stop() {\n this._stopTime = this._now();\n }\n reset() {\n this._startTime = this._now();\n this._stopTime = -1;\n }\n elapsed() {\n if (this._stopTime !== -1) {\n return this._stopTime - this._startTime;\n }\n return this._now() - this._startTime;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar _a;\nimport { LRUCachedFunction } from './cache.js';\nimport { Lazy } from './lazy.js';\nexport function isFalsyOrWhitespace(str) {\n if (!str || typeof str !== 'string') {\n return true;\n }\n return str.trim().length === 0;\n}\nconst _formatRegexp = /{(\\d+)}/g;\n/**\n * Helper to produce a string with a variable number of arguments. Insert variable segments\n * into the string using the {n} notation where N is the index of the argument following the string.\n * @param value string to which formatting is applied\n * @param args replacements for {n}-entries\n */\nexport function format(value, ...args) {\n if (args.length === 0) {\n return value;\n }\n return value.replace(_formatRegexp, function (match, group) {\n const idx = parseInt(group, 10);\n return isNaN(idx) || idx < 0 || idx >= args.length ?\n match :\n args[idx];\n });\n}\n/**\n * Encodes the given value so that it can be used as literal value in html attributes.\n *\n * In other words, computes `$val`, such that `attr` in `
` has the runtime value `value`.\n * This prevents XSS injection.\n */\nexport function htmlAttributeEncodeValue(value) {\n return value.replace(/[<>\"'&]/g, ch => {\n switch (ch) {\n case '<': return '<';\n case '>': return '>';\n case '\"': return '"';\n case '\\'': return ''';\n case '&': return '&';\n }\n return ch;\n });\n}\n/**\n * Converts HTML characters inside the string to use entities instead. Makes the string safe from\n * being used e.g. in HTMLElement.innerHTML.\n */\nexport function escape(html) {\n return html.replace(/[<>&]/g, function (match) {\n switch (match) {\n case '<': return '<';\n case '>': return '>';\n case '&': return '&';\n default: return match;\n }\n });\n}\n/**\n * Escapes regular expression characters in a given string\n */\nexport function escapeRegExpCharacters(value) {\n return value.replace(/[\\\\\\{\\}\\*\\+\\?\\|\\^\\$\\.\\[\\]\\(\\)]/g, '\\\\$&');\n}\n/**\n * Removes all occurrences of needle from the beginning and end of haystack.\n * @param haystack string to trim\n * @param needle the thing to trim (default is a blank)\n */\nexport function trim(haystack, needle = ' ') {\n const trimmed = ltrim(haystack, needle);\n return rtrim(trimmed, needle);\n}\n/**\n * Removes all occurrences of needle from the beginning of haystack.\n * @param haystack string to trim\n * @param needle the thing to trim\n */\nexport function ltrim(haystack, needle) {\n if (!haystack || !needle) {\n return haystack;\n }\n const needleLen = needle.length;\n if (needleLen === 0 || haystack.length === 0) {\n return haystack;\n }\n let offset = 0;\n while (haystack.indexOf(needle, offset) === offset) {\n offset = offset + needleLen;\n }\n return haystack.substring(offset);\n}\n/**\n * Removes all occurrences of needle from the end of haystack.\n * @param haystack string to trim\n * @param needle the thing to trim\n */\nexport function rtrim(haystack, needle) {\n if (!haystack || !needle) {\n return haystack;\n }\n const needleLen = needle.length, haystackLen = haystack.length;\n if (needleLen === 0 || haystackLen === 0) {\n return haystack;\n }\n let offset = haystackLen, idx = -1;\n while (true) {\n idx = haystack.lastIndexOf(needle, offset - 1);\n if (idx === -1 || idx + needleLen !== offset) {\n break;\n }\n if (idx === 0) {\n return '';\n }\n offset = idx;\n }\n return haystack.substring(0, offset);\n}\nexport function convertSimple2RegExpPattern(pattern) {\n return pattern.replace(/[\\-\\\\\\{\\}\\+\\?\\|\\^\\$\\.\\,\\[\\]\\(\\)\\#\\s]/g, '\\\\$&').replace(/[\\*]/g, '.*');\n}\nexport function stripWildcards(pattern) {\n return pattern.replace(/\\*/g, '');\n}\nexport function createRegExp(searchString, isRegex, options = {}) {\n if (!searchString) {\n throw new Error('Cannot create regex from empty string');\n }\n if (!isRegex) {\n searchString = escapeRegExpCharacters(searchString);\n }\n if (options.wholeWord) {\n if (!/\\B/.test(searchString.charAt(0))) {\n searchString = '\\\\b' + searchString;\n }\n if (!/\\B/.test(searchString.charAt(searchString.length - 1))) {\n searchString = searchString + '\\\\b';\n }\n }\n let modifiers = '';\n if (options.global) {\n modifiers += 'g';\n }\n if (!options.matchCase) {\n modifiers += 'i';\n }\n if (options.multiline) {\n modifiers += 'm';\n }\n if (options.unicode) {\n modifiers += 'u';\n }\n return new RegExp(searchString, modifiers);\n}\nexport function regExpLeadsToEndlessLoop(regexp) {\n // Exit early if it's one of these special cases which are meant to match\n // against an empty string\n if (regexp.source === '^' || regexp.source === '^$' || regexp.source === '$' || regexp.source === '^\\\\s*$') {\n return false;\n }\n // We check against an empty string. If the regular expression doesn't advance\n // (e.g. ends in an endless loop) it will match an empty string.\n const match = regexp.exec('');\n return !!(match && regexp.lastIndex === 0);\n}\nexport function splitLines(str) {\n return str.split(/\\r\\n|\\r|\\n/);\n}\nexport function splitLinesIncludeSeparators(str) {\n var _b;\n const linesWithSeparators = [];\n const splitLinesAndSeparators = str.split(/(\\r\\n|\\r|\\n)/);\n for (let i = 0; i < Math.ceil(splitLinesAndSeparators.length / 2); i++) {\n linesWithSeparators.push(splitLinesAndSeparators[2 * i] + ((_b = splitLinesAndSeparators[2 * i + 1]) !== null && _b !== void 0 ? _b : ''));\n }\n return linesWithSeparators;\n}\n/**\n * Returns first index of the string that is not whitespace.\n * If string is empty or contains only whitespaces, returns -1\n */\nexport function firstNonWhitespaceIndex(str) {\n for (let i = 0, len = str.length; i < len; i++) {\n const chCode = str.charCodeAt(i);\n if (chCode !== 32 /* CharCode.Space */ && chCode !== 9 /* CharCode.Tab */) {\n return i;\n }\n }\n return -1;\n}\n/**\n * Returns the leading whitespace of the string.\n * If the string contains only whitespaces, returns entire string\n */\nexport function getLeadingWhitespace(str, start = 0, end = str.length) {\n for (let i = start; i < end; i++) {\n const chCode = str.charCodeAt(i);\n if (chCode !== 32 /* CharCode.Space */ && chCode !== 9 /* CharCode.Tab */) {\n return str.substring(start, i);\n }\n }\n return str.substring(start, end);\n}\n/**\n * Returns last index of the string that is not whitespace.\n * If string is empty or contains only whitespaces, returns -1\n */\nexport function lastNonWhitespaceIndex(str, startIndex = str.length - 1) {\n for (let i = startIndex; i >= 0; i--) {\n const chCode = str.charCodeAt(i);\n if (chCode !== 32 /* CharCode.Space */ && chCode !== 9 /* CharCode.Tab */) {\n return i;\n }\n }\n return -1;\n}\nexport function compare(a, b) {\n if (a < b) {\n return -1;\n }\n else if (a > b) {\n return 1;\n }\n else {\n return 0;\n }\n}\nexport function compareSubstring(a, b, aStart = 0, aEnd = a.length, bStart = 0, bEnd = b.length) {\n for (; aStart < aEnd && bStart < bEnd; aStart++, bStart++) {\n const codeA = a.charCodeAt(aStart);\n const codeB = b.charCodeAt(bStart);\n if (codeA < codeB) {\n return -1;\n }\n else if (codeA > codeB) {\n return 1;\n }\n }\n const aLen = aEnd - aStart;\n const bLen = bEnd - bStart;\n if (aLen < bLen) {\n return -1;\n }\n else if (aLen > bLen) {\n return 1;\n }\n return 0;\n}\nexport function compareIgnoreCase(a, b) {\n return compareSubstringIgnoreCase(a, b, 0, a.length, 0, b.length);\n}\nexport function compareSubstringIgnoreCase(a, b, aStart = 0, aEnd = a.length, bStart = 0, bEnd = b.length) {\n for (; aStart < aEnd && bStart < bEnd; aStart++, bStart++) {\n let codeA = a.charCodeAt(aStart);\n let codeB = b.charCodeAt(bStart);\n if (codeA === codeB) {\n // equal\n continue;\n }\n if (codeA >= 128 || codeB >= 128) {\n // not ASCII letters -> fallback to lower-casing strings\n return compareSubstring(a.toLowerCase(), b.toLowerCase(), aStart, aEnd, bStart, bEnd);\n }\n // mapper lower-case ascii letter onto upper-case varinats\n // [97-122] (lower ascii) --> [65-90] (upper ascii)\n if (isLowerAsciiLetter(codeA)) {\n codeA -= 32;\n }\n if (isLowerAsciiLetter(codeB)) {\n codeB -= 32;\n }\n // compare both code points\n const diff = codeA - codeB;\n if (diff === 0) {\n continue;\n }\n return diff;\n }\n const aLen = aEnd - aStart;\n const bLen = bEnd - bStart;\n if (aLen < bLen) {\n return -1;\n }\n else if (aLen > bLen) {\n return 1;\n }\n return 0;\n}\nexport function isAsciiDigit(code) {\n return code >= 48 /* CharCode.Digit0 */ && code <= 57 /* CharCode.Digit9 */;\n}\nexport function isLowerAsciiLetter(code) {\n return code >= 97 /* CharCode.a */ && code <= 122 /* CharCode.z */;\n}\nexport function isUpperAsciiLetter(code) {\n return code >= 65 /* CharCode.A */ && code <= 90 /* CharCode.Z */;\n}\nexport function equalsIgnoreCase(a, b) {\n return a.length === b.length && compareSubstringIgnoreCase(a, b) === 0;\n}\nexport function startsWithIgnoreCase(str, candidate) {\n const candidateLength = candidate.length;\n if (candidate.length > str.length) {\n return false;\n }\n return compareSubstringIgnoreCase(str, candidate, 0, candidateLength) === 0;\n}\n/**\n * @returns the length of the common prefix of the two strings.\n */\nexport function commonPrefixLength(a, b) {\n const len = Math.min(a.length, b.length);\n let i;\n for (i = 0; i < len; i++) {\n if (a.charCodeAt(i) !== b.charCodeAt(i)) {\n return i;\n }\n }\n return len;\n}\n/**\n * @returns the length of the common suffix of the two strings.\n */\nexport function commonSuffixLength(a, b) {\n const len = Math.min(a.length, b.length);\n let i;\n const aLastIndex = a.length - 1;\n const bLastIndex = b.length - 1;\n for (i = 0; i < len; i++) {\n if (a.charCodeAt(aLastIndex - i) !== b.charCodeAt(bLastIndex - i)) {\n return i;\n }\n }\n return len;\n}\n/**\n * See http://en.wikipedia.org/wiki/Surrogate_pair\n */\nexport function isHighSurrogate(charCode) {\n return (0xD800 <= charCode && charCode <= 0xDBFF);\n}\n/**\n * See http://en.wikipedia.org/wiki/Surrogate_pair\n */\nexport function isLowSurrogate(charCode) {\n return (0xDC00 <= charCode && charCode <= 0xDFFF);\n}\n/**\n * See http://en.wikipedia.org/wiki/Surrogate_pair\n */\nexport function computeCodePoint(highSurrogate, lowSurrogate) {\n return ((highSurrogate - 0xD800) << 10) + (lowSurrogate - 0xDC00) + 0x10000;\n}\n/**\n * get the code point that begins at offset `offset`\n */\nexport function getNextCodePoint(str, len, offset) {\n const charCode = str.charCodeAt(offset);\n if (isHighSurrogate(charCode) && offset + 1 < len) {\n const nextCharCode = str.charCodeAt(offset + 1);\n if (isLowSurrogate(nextCharCode)) {\n return computeCodePoint(charCode, nextCharCode);\n }\n }\n return charCode;\n}\n/**\n * get the code point that ends right before offset `offset`\n */\nfunction getPrevCodePoint(str, offset) {\n const charCode = str.charCodeAt(offset - 1);\n if (isLowSurrogate(charCode) && offset > 1) {\n const prevCharCode = str.charCodeAt(offset - 2);\n if (isHighSurrogate(prevCharCode)) {\n return computeCodePoint(prevCharCode, charCode);\n }\n }\n return charCode;\n}\nexport class CodePointIterator {\n get offset() {\n return this._offset;\n }\n constructor(str, offset = 0) {\n this._str = str;\n this._len = str.length;\n this._offset = offset;\n }\n setOffset(offset) {\n this._offset = offset;\n }\n prevCodePoint() {\n const codePoint = getPrevCodePoint(this._str, this._offset);\n this._offset -= (codePoint >= 65536 /* Constants.UNICODE_SUPPLEMENTARY_PLANE_BEGIN */ ? 2 : 1);\n return codePoint;\n }\n nextCodePoint() {\n const codePoint = getNextCodePoint(this._str, this._len, this._offset);\n this._offset += (codePoint >= 65536 /* Constants.UNICODE_SUPPLEMENTARY_PLANE_BEGIN */ ? 2 : 1);\n return codePoint;\n }\n eol() {\n return (this._offset >= this._len);\n }\n}\nexport class GraphemeIterator {\n get offset() {\n return this._iterator.offset;\n }\n constructor(str, offset = 0) {\n this._iterator = new CodePointIterator(str, offset);\n }\n nextGraphemeLength() {\n const graphemeBreakTree = GraphemeBreakTree.getInstance();\n const iterator = this._iterator;\n const initialOffset = iterator.offset;\n let graphemeBreakType = graphemeBreakTree.getGraphemeBreakType(iterator.nextCodePoint());\n while (!iterator.eol()) {\n const offset = iterator.offset;\n const nextGraphemeBreakType = graphemeBreakTree.getGraphemeBreakType(iterator.nextCodePoint());\n if (breakBetweenGraphemeBreakType(graphemeBreakType, nextGraphemeBreakType)) {\n // move iterator back\n iterator.setOffset(offset);\n break;\n }\n graphemeBreakType = nextGraphemeBreakType;\n }\n return (iterator.offset - initialOffset);\n }\n prevGraphemeLength() {\n const graphemeBreakTree = GraphemeBreakTree.getInstance();\n const iterator = this._iterator;\n const initialOffset = iterator.offset;\n let graphemeBreakType = graphemeBreakTree.getGraphemeBreakType(iterator.prevCodePoint());\n while (iterator.offset > 0) {\n const offset = iterator.offset;\n const prevGraphemeBreakType = graphemeBreakTree.getGraphemeBreakType(iterator.prevCodePoint());\n if (breakBetweenGraphemeBreakType(prevGraphemeBreakType, graphemeBreakType)) {\n // move iterator back\n iterator.setOffset(offset);\n break;\n }\n graphemeBreakType = prevGraphemeBreakType;\n }\n return (initialOffset - iterator.offset);\n }\n eol() {\n return this._iterator.eol();\n }\n}\nexport function nextCharLength(str, initialOffset) {\n const iterator = new GraphemeIterator(str, initialOffset);\n return iterator.nextGraphemeLength();\n}\nexport function prevCharLength(str, initialOffset) {\n const iterator = new GraphemeIterator(str, initialOffset);\n return iterator.prevGraphemeLength();\n}\nexport function getCharContainingOffset(str, offset) {\n if (offset > 0 && isLowSurrogate(str.charCodeAt(offset))) {\n offset--;\n }\n const endOffset = offset + nextCharLength(str, offset);\n const startOffset = endOffset - prevCharLength(str, endOffset);\n return [startOffset, endOffset];\n}\nlet CONTAINS_RTL = undefined;\nfunction makeContainsRtl() {\n // Generated using https://github.com/alexdima/unicode-utils/blob/main/rtl-test.js\n return /(?:[\\u05BE\\u05C0\\u05C3\\u05C6\\u05D0-\\u05F4\\u0608\\u060B\\u060D\\u061B-\\u064A\\u066D-\\u066F\\u0671-\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1-\\u07EA\\u07F4\\u07F5\\u07FA\\u07FE-\\u0815\\u081A\\u0824\\u0828\\u0830-\\u0858\\u085E-\\u088E\\u08A0-\\u08C9\\u200F\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFD3D\\uFD50-\\uFDC7\\uFDF0-\\uFDFC\\uFE70-\\uFEFC]|\\uD802[\\uDC00-\\uDD1B\\uDD20-\\uDE00\\uDE10-\\uDE35\\uDE40-\\uDEE4\\uDEEB-\\uDF35\\uDF40-\\uDFFF]|\\uD803[\\uDC00-\\uDD23\\uDE80-\\uDEA9\\uDEAD-\\uDF45\\uDF51-\\uDF81\\uDF86-\\uDFF6]|\\uD83A[\\uDC00-\\uDCCF\\uDD00-\\uDD43\\uDD4B-\\uDFFF]|\\uD83B[\\uDC00-\\uDEBB])/;\n}\n/**\n * Returns true if `str` contains any Unicode character that is classified as \"R\" or \"AL\".\n */\nexport function containsRTL(str) {\n if (!CONTAINS_RTL) {\n CONTAINS_RTL = makeContainsRtl();\n }\n return CONTAINS_RTL.test(str);\n}\nconst IS_BASIC_ASCII = /^[\\t\\n\\r\\x20-\\x7E]*$/;\n/**\n * Returns true if `str` contains only basic ASCII characters in the range 32 - 126 (including 32 and 126) or \\n, \\r, \\t\n */\nexport function isBasicASCII(str) {\n return IS_BASIC_ASCII.test(str);\n}\nexport const UNUSUAL_LINE_TERMINATORS = /[\\u2028\\u2029]/; // LINE SEPARATOR (LS) or PARAGRAPH SEPARATOR (PS)\n/**\n * Returns true if `str` contains unusual line terminators, like LS or PS\n */\nexport function containsUnusualLineTerminators(str) {\n return UNUSUAL_LINE_TERMINATORS.test(str);\n}\nexport function isFullWidthCharacter(charCode) {\n // Do a cheap trick to better support wrapping of wide characters, treat them as 2 columns\n // http://jrgraphix.net/research/unicode_blocks.php\n // 2E80 - 2EFF CJK Radicals Supplement\n // 2F00 - 2FDF Kangxi Radicals\n // 2FF0 - 2FFF Ideographic Description Characters\n // 3000 - 303F CJK Symbols and Punctuation\n // 3040 - 309F Hiragana\n // 30A0 - 30FF Katakana\n // 3100 - 312F Bopomofo\n // 3130 - 318F Hangul Compatibility Jamo\n // 3190 - 319F Kanbun\n // 31A0 - 31BF Bopomofo Extended\n // 31F0 - 31FF Katakana Phonetic Extensions\n // 3200 - 32FF Enclosed CJK Letters and Months\n // 3300 - 33FF CJK Compatibility\n // 3400 - 4DBF CJK Unified Ideographs Extension A\n // 4DC0 - 4DFF Yijing Hexagram Symbols\n // 4E00 - 9FFF CJK Unified Ideographs\n // A000 - A48F Yi Syllables\n // A490 - A4CF Yi Radicals\n // AC00 - D7AF Hangul Syllables\n // [IGNORE] D800 - DB7F High Surrogates\n // [IGNORE] DB80 - DBFF High Private Use Surrogates\n // [IGNORE] DC00 - DFFF Low Surrogates\n // [IGNORE] E000 - F8FF Private Use Area\n // F900 - FAFF CJK Compatibility Ideographs\n // [IGNORE] FB00 - FB4F Alphabetic Presentation Forms\n // [IGNORE] FB50 - FDFF Arabic Presentation Forms-A\n // [IGNORE] FE00 - FE0F Variation Selectors\n // [IGNORE] FE20 - FE2F Combining Half Marks\n // [IGNORE] FE30 - FE4F CJK Compatibility Forms\n // [IGNORE] FE50 - FE6F Small Form Variants\n // [IGNORE] FE70 - FEFF Arabic Presentation Forms-B\n // FF00 - FFEF Halfwidth and Fullwidth Forms\n // [https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms]\n // of which FF01 - FF5E fullwidth ASCII of 21 to 7E\n // [IGNORE] and FF65 - FFDC halfwidth of Katakana and Hangul\n // [IGNORE] FFF0 - FFFF Specials\n return ((charCode >= 0x2E80 && charCode <= 0xD7AF)\n || (charCode >= 0xF900 && charCode <= 0xFAFF)\n || (charCode >= 0xFF01 && charCode <= 0xFF5E));\n}\n/**\n * A fast function (therefore imprecise) to check if code points are emojis.\n * Generated using https://github.com/alexdima/unicode-utils/blob/main/emoji-test.js\n */\nexport function isEmojiImprecise(x) {\n return ((x >= 0x1F1E6 && x <= 0x1F1FF) || (x === 8986) || (x === 8987) || (x === 9200)\n || (x === 9203) || (x >= 9728 && x <= 10175) || (x === 11088) || (x === 11093)\n || (x >= 127744 && x <= 128591) || (x >= 128640 && x <= 128764)\n || (x >= 128992 && x <= 129008) || (x >= 129280 && x <= 129535)\n || (x >= 129648 && x <= 129782));\n}\n// -- UTF-8 BOM\nexport const UTF8_BOM_CHARACTER = String.fromCharCode(65279 /* CharCode.UTF8_BOM */);\nexport function startsWithUTF8BOM(str) {\n return !!(str && str.length > 0 && str.charCodeAt(0) === 65279 /* CharCode.UTF8_BOM */);\n}\nexport function containsUppercaseCharacter(target, ignoreEscapedChars = false) {\n if (!target) {\n return false;\n }\n if (ignoreEscapedChars) {\n target = target.replace(/\\\\./g, '');\n }\n return target.toLowerCase() !== target;\n}\n/**\n * Produces 'a'-'z', followed by 'A'-'Z'... followed by 'a'-'z', etc.\n */\nexport function singleLetterHash(n) {\n const LETTERS_CNT = (90 /* CharCode.Z */ - 65 /* CharCode.A */ + 1);\n n = n % (2 * LETTERS_CNT);\n if (n < LETTERS_CNT) {\n return String.fromCharCode(97 /* CharCode.a */ + n);\n }\n return String.fromCharCode(65 /* CharCode.A */ + n - LETTERS_CNT);\n}\nfunction breakBetweenGraphemeBreakType(breakTypeA, breakTypeB) {\n // http://www.unicode.org/reports/tr29/#Grapheme_Cluster_Boundary_Rules\n // !!! Let's make the common case a bit faster\n if (breakTypeA === 0 /* GraphemeBreakType.Other */) {\n // see https://www.unicode.org/Public/13.0.0/ucd/auxiliary/GraphemeBreakTest-13.0.0d10.html#table\n return (breakTypeB !== 5 /* GraphemeBreakType.Extend */ && breakTypeB !== 7 /* GraphemeBreakType.SpacingMark */);\n }\n // Do not break between a CR and LF. Otherwise, break before and after controls.\n // GB3 CR × LF\n // GB4 (Control | CR | LF) ÷\n // GB5 ÷ (Control | CR | LF)\n if (breakTypeA === 2 /* GraphemeBreakType.CR */) {\n if (breakTypeB === 3 /* GraphemeBreakType.LF */) {\n return false; // GB3\n }\n }\n if (breakTypeA === 4 /* GraphemeBreakType.Control */ || breakTypeA === 2 /* GraphemeBreakType.CR */ || breakTypeA === 3 /* GraphemeBreakType.LF */) {\n return true; // GB4\n }\n if (breakTypeB === 4 /* GraphemeBreakType.Control */ || breakTypeB === 2 /* GraphemeBreakType.CR */ || breakTypeB === 3 /* GraphemeBreakType.LF */) {\n return true; // GB5\n }\n // Do not break Hangul syllable sequences.\n // GB6 L × (L | V | LV | LVT)\n // GB7 (LV | V) × (V | T)\n // GB8 (LVT | T) × T\n if (breakTypeA === 8 /* GraphemeBreakType.L */) {\n if (breakTypeB === 8 /* GraphemeBreakType.L */ || breakTypeB === 9 /* GraphemeBreakType.V */ || breakTypeB === 11 /* GraphemeBreakType.LV */ || breakTypeB === 12 /* GraphemeBreakType.LVT */) {\n return false; // GB6\n }\n }\n if (breakTypeA === 11 /* GraphemeBreakType.LV */ || breakTypeA === 9 /* GraphemeBreakType.V */) {\n if (breakTypeB === 9 /* GraphemeBreakType.V */ || breakTypeB === 10 /* GraphemeBreakType.T */) {\n return false; // GB7\n }\n }\n if (breakTypeA === 12 /* GraphemeBreakType.LVT */ || breakTypeA === 10 /* GraphemeBreakType.T */) {\n if (breakTypeB === 10 /* GraphemeBreakType.T */) {\n return false; // GB8\n }\n }\n // Do not break before extending characters or ZWJ.\n // GB9 × (Extend | ZWJ)\n if (breakTypeB === 5 /* GraphemeBreakType.Extend */ || breakTypeB === 13 /* GraphemeBreakType.ZWJ */) {\n return false; // GB9\n }\n // The GB9a and GB9b rules only apply to extended grapheme clusters:\n // Do not break before SpacingMarks, or after Prepend characters.\n // GB9a × SpacingMark\n // GB9b Prepend ×\n if (breakTypeB === 7 /* GraphemeBreakType.SpacingMark */) {\n return false; // GB9a\n }\n if (breakTypeA === 1 /* GraphemeBreakType.Prepend */) {\n return false; // GB9b\n }\n // Do not break within emoji modifier sequences or emoji zwj sequences.\n // GB11 \\p{Extended_Pictographic} Extend* ZWJ × \\p{Extended_Pictographic}\n if (breakTypeA === 13 /* GraphemeBreakType.ZWJ */ && breakTypeB === 14 /* GraphemeBreakType.Extended_Pictographic */) {\n // Note: we are not implementing the rule entirely here to avoid introducing states\n return false; // GB11\n }\n // GB12 sot (RI RI)* RI × RI\n // GB13 [^RI] (RI RI)* RI × RI\n if (breakTypeA === 6 /* GraphemeBreakType.Regional_Indicator */ && breakTypeB === 6 /* GraphemeBreakType.Regional_Indicator */) {\n // Note: we are not implementing the rule entirely here to avoid introducing states\n return false; // GB12 & GB13\n }\n // GB999 Any ÷ Any\n return true;\n}\nclass GraphemeBreakTree {\n static getInstance() {\n if (!GraphemeBreakTree._INSTANCE) {\n GraphemeBreakTree._INSTANCE = new GraphemeBreakTree();\n }\n return GraphemeBreakTree._INSTANCE;\n }\n constructor() {\n this._data = getGraphemeBreakRawData();\n }\n getGraphemeBreakType(codePoint) {\n // !!! Let's make 7bit ASCII a bit faster: 0..31\n if (codePoint < 32) {\n if (codePoint === 10 /* CharCode.LineFeed */) {\n return 3 /* GraphemeBreakType.LF */;\n }\n if (codePoint === 13 /* CharCode.CarriageReturn */) {\n return 2 /* GraphemeBreakType.CR */;\n }\n return 4 /* GraphemeBreakType.Control */;\n }\n // !!! Let's make 7bit ASCII a bit faster: 32..126\n if (codePoint < 127) {\n return 0 /* GraphemeBreakType.Other */;\n }\n const data = this._data;\n const nodeCount = data.length / 3;\n let nodeIndex = 1;\n while (nodeIndex <= nodeCount) {\n if (codePoint < data[3 * nodeIndex]) {\n // go left\n nodeIndex = 2 * nodeIndex;\n }\n else if (codePoint > data[3 * nodeIndex + 1]) {\n // go right\n nodeIndex = 2 * nodeIndex + 1;\n }\n else {\n // hit\n return data[3 * nodeIndex + 2];\n }\n }\n return 0 /* GraphemeBreakType.Other */;\n }\n}\nGraphemeBreakTree._INSTANCE = null;\nfunction getGraphemeBreakRawData() {\n // generated using https://github.com/alexdima/unicode-utils/blob/main/grapheme-break.js\n return JSON.parse('[0,0,0,51229,51255,12,44061,44087,12,127462,127487,6,7083,7085,5,47645,47671,12,54813,54839,12,128678,128678,14,3270,3270,5,9919,9923,14,45853,45879,12,49437,49463,12,53021,53047,12,71216,71218,7,128398,128399,14,129360,129374,14,2519,2519,5,4448,4519,9,9742,9742,14,12336,12336,14,44957,44983,12,46749,46775,12,48541,48567,12,50333,50359,12,52125,52151,12,53917,53943,12,69888,69890,5,73018,73018,5,127990,127990,14,128558,128559,14,128759,128760,14,129653,129655,14,2027,2035,5,2891,2892,7,3761,3761,5,6683,6683,5,8293,8293,4,9825,9826,14,9999,9999,14,43452,43453,5,44509,44535,12,45405,45431,12,46301,46327,12,47197,47223,12,48093,48119,12,48989,49015,12,49885,49911,12,50781,50807,12,51677,51703,12,52573,52599,12,53469,53495,12,54365,54391,12,65279,65279,4,70471,70472,7,72145,72147,7,119173,119179,5,127799,127818,14,128240,128244,14,128512,128512,14,128652,128652,14,128721,128722,14,129292,129292,14,129445,129450,14,129734,129743,14,1476,1477,5,2366,2368,7,2750,2752,7,3076,3076,5,3415,3415,5,4141,4144,5,6109,6109,5,6964,6964,5,7394,7400,5,9197,9198,14,9770,9770,14,9877,9877,14,9968,9969,14,10084,10084,14,43052,43052,5,43713,43713,5,44285,44311,12,44733,44759,12,45181,45207,12,45629,45655,12,46077,46103,12,46525,46551,12,46973,46999,12,47421,47447,12,47869,47895,12,48317,48343,12,48765,48791,12,49213,49239,12,49661,49687,12,50109,50135,12,50557,50583,12,51005,51031,12,51453,51479,12,51901,51927,12,52349,52375,12,52797,52823,12,53245,53271,12,53693,53719,12,54141,54167,12,54589,54615,12,55037,55063,12,69506,69509,5,70191,70193,5,70841,70841,7,71463,71467,5,72330,72342,5,94031,94031,5,123628,123631,5,127763,127765,14,127941,127941,14,128043,128062,14,128302,128317,14,128465,128467,14,128539,128539,14,128640,128640,14,128662,128662,14,128703,128703,14,128745,128745,14,129004,129007,14,129329,129330,14,129402,129402,14,129483,129483,14,129686,129704,14,130048,131069,14,173,173,4,1757,1757,1,2200,2207,5,2434,2435,7,2631,2632,5,2817,2817,5,3008,3008,5,3201,3201,5,3387,3388,5,3542,3542,5,3902,3903,7,4190,4192,5,6002,6003,5,6439,6440,5,6765,6770,7,7019,7027,5,7154,7155,7,8205,8205,13,8505,8505,14,9654,9654,14,9757,9757,14,9792,9792,14,9852,9853,14,9890,9894,14,9937,9937,14,9981,9981,14,10035,10036,14,11035,11036,14,42654,42655,5,43346,43347,7,43587,43587,5,44006,44007,7,44173,44199,12,44397,44423,12,44621,44647,12,44845,44871,12,45069,45095,12,45293,45319,12,45517,45543,12,45741,45767,12,45965,45991,12,46189,46215,12,46413,46439,12,46637,46663,12,46861,46887,12,47085,47111,12,47309,47335,12,47533,47559,12,47757,47783,12,47981,48007,12,48205,48231,12,48429,48455,12,48653,48679,12,48877,48903,12,49101,49127,12,49325,49351,12,49549,49575,12,49773,49799,12,49997,50023,12,50221,50247,12,50445,50471,12,50669,50695,12,50893,50919,12,51117,51143,12,51341,51367,12,51565,51591,12,51789,51815,12,52013,52039,12,52237,52263,12,52461,52487,12,52685,52711,12,52909,52935,12,53133,53159,12,53357,53383,12,53581,53607,12,53805,53831,12,54029,54055,12,54253,54279,12,54477,54503,12,54701,54727,12,54925,54951,12,55149,55175,12,68101,68102,5,69762,69762,7,70067,70069,7,70371,70378,5,70720,70721,7,71087,71087,5,71341,71341,5,71995,71996,5,72249,72249,7,72850,72871,5,73109,73109,5,118576,118598,5,121505,121519,5,127245,127247,14,127568,127569,14,127777,127777,14,127872,127891,14,127956,127967,14,128015,128016,14,128110,128172,14,128259,128259,14,128367,128368,14,128424,128424,14,128488,128488,14,128530,128532,14,128550,128551,14,128566,128566,14,128647,128647,14,128656,128656,14,128667,128673,14,128691,128693,14,128715,128715,14,128728,128732,14,128752,128752,14,128765,128767,14,129096,129103,14,129311,129311,14,129344,129349,14,129394,129394,14,129413,129425,14,129466,129471,14,129511,129535,14,129664,129666,14,129719,129722,14,129760,129767,14,917536,917631,5,13,13,2,1160,1161,5,1564,1564,4,1807,1807,1,2085,2087,5,2307,2307,7,2382,2383,7,2497,2500,5,2563,2563,7,2677,2677,5,2763,2764,7,2879,2879,5,2914,2915,5,3021,3021,5,3142,3144,5,3263,3263,5,3285,3286,5,3398,3400,7,3530,3530,5,3633,3633,5,3864,3865,5,3974,3975,5,4155,4156,7,4229,4230,5,5909,5909,7,6078,6085,7,6277,6278,5,6451,6456,7,6744,6750,5,6846,6846,5,6972,6972,5,7074,7077,5,7146,7148,7,7222,7223,5,7416,7417,5,8234,8238,4,8417,8417,5,9000,9000,14,9203,9203,14,9730,9731,14,9748,9749,14,9762,9763,14,9776,9783,14,9800,9811,14,9831,9831,14,9872,9873,14,9882,9882,14,9900,9903,14,9929,9933,14,9941,9960,14,9974,9974,14,9989,9989,14,10006,10006,14,10062,10062,14,10160,10160,14,11647,11647,5,12953,12953,14,43019,43019,5,43232,43249,5,43443,43443,5,43567,43568,7,43696,43696,5,43765,43765,7,44013,44013,5,44117,44143,12,44229,44255,12,44341,44367,12,44453,44479,12,44565,44591,12,44677,44703,12,44789,44815,12,44901,44927,12,45013,45039,12,45125,45151,12,45237,45263,12,45349,45375,12,45461,45487,12,45573,45599,12,45685,45711,12,45797,45823,12,45909,45935,12,46021,46047,12,46133,46159,12,46245,46271,12,46357,46383,12,46469,46495,12,46581,46607,12,46693,46719,12,46805,46831,12,46917,46943,12,47029,47055,12,47141,47167,12,47253,47279,12,47365,47391,12,47477,47503,12,47589,47615,12,47701,47727,12,47813,47839,12,47925,47951,12,48037,48063,12,48149,48175,12,48261,48287,12,48373,48399,12,48485,48511,12,48597,48623,12,48709,48735,12,48821,48847,12,48933,48959,12,49045,49071,12,49157,49183,12,49269,49295,12,49381,49407,12,49493,49519,12,49605,49631,12,49717,49743,12,49829,49855,12,49941,49967,12,50053,50079,12,50165,50191,12,50277,50303,12,50389,50415,12,50501,50527,12,50613,50639,12,50725,50751,12,50837,50863,12,50949,50975,12,51061,51087,12,51173,51199,12,51285,51311,12,51397,51423,12,51509,51535,12,51621,51647,12,51733,51759,12,51845,51871,12,51957,51983,12,52069,52095,12,52181,52207,12,52293,52319,12,52405,52431,12,52517,52543,12,52629,52655,12,52741,52767,12,52853,52879,12,52965,52991,12,53077,53103,12,53189,53215,12,53301,53327,12,53413,53439,12,53525,53551,12,53637,53663,12,53749,53775,12,53861,53887,12,53973,53999,12,54085,54111,12,54197,54223,12,54309,54335,12,54421,54447,12,54533,54559,12,54645,54671,12,54757,54783,12,54869,54895,12,54981,55007,12,55093,55119,12,55243,55291,10,66045,66045,5,68325,68326,5,69688,69702,5,69817,69818,5,69957,69958,7,70089,70092,5,70198,70199,5,70462,70462,5,70502,70508,5,70750,70750,5,70846,70846,7,71100,71101,5,71230,71230,7,71351,71351,5,71737,71738,5,72000,72000,7,72160,72160,5,72273,72278,5,72752,72758,5,72882,72883,5,73031,73031,5,73461,73462,7,94192,94193,7,119149,119149,7,121403,121452,5,122915,122916,5,126980,126980,14,127358,127359,14,127535,127535,14,127759,127759,14,127771,127771,14,127792,127793,14,127825,127867,14,127897,127899,14,127945,127945,14,127985,127986,14,128000,128007,14,128021,128021,14,128066,128100,14,128184,128235,14,128249,128252,14,128266,128276,14,128335,128335,14,128379,128390,14,128407,128419,14,128444,128444,14,128481,128481,14,128499,128499,14,128526,128526,14,128536,128536,14,128543,128543,14,128556,128556,14,128564,128564,14,128577,128580,14,128643,128645,14,128649,128649,14,128654,128654,14,128660,128660,14,128664,128664,14,128675,128675,14,128686,128689,14,128695,128696,14,128705,128709,14,128717,128719,14,128725,128725,14,128736,128741,14,128747,128748,14,128755,128755,14,128762,128762,14,128981,128991,14,129009,129023,14,129160,129167,14,129296,129304,14,129320,129327,14,129340,129342,14,129356,129356,14,129388,129392,14,129399,129400,14,129404,129407,14,129432,129442,14,129454,129455,14,129473,129474,14,129485,129487,14,129648,129651,14,129659,129660,14,129671,129679,14,129709,129711,14,129728,129730,14,129751,129753,14,129776,129782,14,917505,917505,4,917760,917999,5,10,10,3,127,159,4,768,879,5,1471,1471,5,1536,1541,1,1648,1648,5,1767,1768,5,1840,1866,5,2070,2073,5,2137,2139,5,2274,2274,1,2363,2363,7,2377,2380,7,2402,2403,5,2494,2494,5,2507,2508,7,2558,2558,5,2622,2624,7,2641,2641,5,2691,2691,7,2759,2760,5,2786,2787,5,2876,2876,5,2881,2884,5,2901,2902,5,3006,3006,5,3014,3016,7,3072,3072,5,3134,3136,5,3157,3158,5,3260,3260,5,3266,3266,5,3274,3275,7,3328,3329,5,3391,3392,7,3405,3405,5,3457,3457,5,3536,3537,7,3551,3551,5,3636,3642,5,3764,3772,5,3895,3895,5,3967,3967,7,3993,4028,5,4146,4151,5,4182,4183,7,4226,4226,5,4253,4253,5,4957,4959,5,5940,5940,7,6070,6070,7,6087,6088,7,6158,6158,4,6432,6434,5,6448,6449,7,6679,6680,5,6742,6742,5,6754,6754,5,6783,6783,5,6912,6915,5,6966,6970,5,6978,6978,5,7042,7042,7,7080,7081,5,7143,7143,7,7150,7150,7,7212,7219,5,7380,7392,5,7412,7412,5,8203,8203,4,8232,8232,4,8265,8265,14,8400,8412,5,8421,8432,5,8617,8618,14,9167,9167,14,9200,9200,14,9410,9410,14,9723,9726,14,9733,9733,14,9745,9745,14,9752,9752,14,9760,9760,14,9766,9766,14,9774,9774,14,9786,9786,14,9794,9794,14,9823,9823,14,9828,9828,14,9833,9850,14,9855,9855,14,9875,9875,14,9880,9880,14,9885,9887,14,9896,9897,14,9906,9916,14,9926,9927,14,9935,9935,14,9939,9939,14,9962,9962,14,9972,9972,14,9978,9978,14,9986,9986,14,9997,9997,14,10002,10002,14,10017,10017,14,10055,10055,14,10071,10071,14,10133,10135,14,10548,10549,14,11093,11093,14,12330,12333,5,12441,12442,5,42608,42610,5,43010,43010,5,43045,43046,5,43188,43203,7,43302,43309,5,43392,43394,5,43446,43449,5,43493,43493,5,43571,43572,7,43597,43597,7,43703,43704,5,43756,43757,5,44003,44004,7,44009,44010,7,44033,44059,12,44089,44115,12,44145,44171,12,44201,44227,12,44257,44283,12,44313,44339,12,44369,44395,12,44425,44451,12,44481,44507,12,44537,44563,12,44593,44619,12,44649,44675,12,44705,44731,12,44761,44787,12,44817,44843,12,44873,44899,12,44929,44955,12,44985,45011,12,45041,45067,12,45097,45123,12,45153,45179,12,45209,45235,12,45265,45291,12,45321,45347,12,45377,45403,12,45433,45459,12,45489,45515,12,45545,45571,12,45601,45627,12,45657,45683,12,45713,45739,12,45769,45795,12,45825,45851,12,45881,45907,12,45937,45963,12,45993,46019,12,46049,46075,12,46105,46131,12,46161,46187,12,46217,46243,12,46273,46299,12,46329,46355,12,46385,46411,12,46441,46467,12,46497,46523,12,46553,46579,12,46609,46635,12,46665,46691,12,46721,46747,12,46777,46803,12,46833,46859,12,46889,46915,12,46945,46971,12,47001,47027,12,47057,47083,12,47113,47139,12,47169,47195,12,47225,47251,12,47281,47307,12,47337,47363,12,47393,47419,12,47449,47475,12,47505,47531,12,47561,47587,12,47617,47643,12,47673,47699,12,47729,47755,12,47785,47811,12,47841,47867,12,47897,47923,12,47953,47979,12,48009,48035,12,48065,48091,12,48121,48147,12,48177,48203,12,48233,48259,12,48289,48315,12,48345,48371,12,48401,48427,12,48457,48483,12,48513,48539,12,48569,48595,12,48625,48651,12,48681,48707,12,48737,48763,12,48793,48819,12,48849,48875,12,48905,48931,12,48961,48987,12,49017,49043,12,49073,49099,12,49129,49155,12,49185,49211,12,49241,49267,12,49297,49323,12,49353,49379,12,49409,49435,12,49465,49491,12,49521,49547,12,49577,49603,12,49633,49659,12,49689,49715,12,49745,49771,12,49801,49827,12,49857,49883,12,49913,49939,12,49969,49995,12,50025,50051,12,50081,50107,12,50137,50163,12,50193,50219,12,50249,50275,12,50305,50331,12,50361,50387,12,50417,50443,12,50473,50499,12,50529,50555,12,50585,50611,12,50641,50667,12,50697,50723,12,50753,50779,12,50809,50835,12,50865,50891,12,50921,50947,12,50977,51003,12,51033,51059,12,51089,51115,12,51145,51171,12,51201,51227,12,51257,51283,12,51313,51339,12,51369,51395,12,51425,51451,12,51481,51507,12,51537,51563,12,51593,51619,12,51649,51675,12,51705,51731,12,51761,51787,12,51817,51843,12,51873,51899,12,51929,51955,12,51985,52011,12,52041,52067,12,52097,52123,12,52153,52179,12,52209,52235,12,52265,52291,12,52321,52347,12,52377,52403,12,52433,52459,12,52489,52515,12,52545,52571,12,52601,52627,12,52657,52683,12,52713,52739,12,52769,52795,12,52825,52851,12,52881,52907,12,52937,52963,12,52993,53019,12,53049,53075,12,53105,53131,12,53161,53187,12,53217,53243,12,53273,53299,12,53329,53355,12,53385,53411,12,53441,53467,12,53497,53523,12,53553,53579,12,53609,53635,12,53665,53691,12,53721,53747,12,53777,53803,12,53833,53859,12,53889,53915,12,53945,53971,12,54001,54027,12,54057,54083,12,54113,54139,12,54169,54195,12,54225,54251,12,54281,54307,12,54337,54363,12,54393,54419,12,54449,54475,12,54505,54531,12,54561,54587,12,54617,54643,12,54673,54699,12,54729,54755,12,54785,54811,12,54841,54867,12,54897,54923,12,54953,54979,12,55009,55035,12,55065,55091,12,55121,55147,12,55177,55203,12,65024,65039,5,65520,65528,4,66422,66426,5,68152,68154,5,69291,69292,5,69633,69633,5,69747,69748,5,69811,69814,5,69826,69826,5,69932,69932,7,70016,70017,5,70079,70080,7,70095,70095,5,70196,70196,5,70367,70367,5,70402,70403,7,70464,70464,5,70487,70487,5,70709,70711,7,70725,70725,7,70833,70834,7,70843,70844,7,70849,70849,7,71090,71093,5,71103,71104,5,71227,71228,7,71339,71339,5,71344,71349,5,71458,71461,5,71727,71735,5,71985,71989,7,71998,71998,5,72002,72002,7,72154,72155,5,72193,72202,5,72251,72254,5,72281,72283,5,72344,72345,5,72766,72766,7,72874,72880,5,72885,72886,5,73023,73029,5,73104,73105,5,73111,73111,5,92912,92916,5,94095,94098,5,113824,113827,4,119142,119142,7,119155,119162,4,119362,119364,5,121476,121476,5,122888,122904,5,123184,123190,5,125252,125258,5,127183,127183,14,127340,127343,14,127377,127386,14,127491,127503,14,127548,127551,14,127744,127756,14,127761,127761,14,127769,127769,14,127773,127774,14,127780,127788,14,127796,127797,14,127820,127823,14,127869,127869,14,127894,127895,14,127902,127903,14,127943,127943,14,127947,127950,14,127972,127972,14,127988,127988,14,127992,127994,14,128009,128011,14,128019,128019,14,128023,128041,14,128064,128064,14,128102,128107,14,128174,128181,14,128238,128238,14,128246,128247,14,128254,128254,14,128264,128264,14,128278,128299,14,128329,128330,14,128348,128359,14,128371,128377,14,128392,128393,14,128401,128404,14,128421,128421,14,128433,128434,14,128450,128452,14,128476,128478,14,128483,128483,14,128495,128495,14,128506,128506,14,128519,128520,14,128528,128528,14,128534,128534,14,128538,128538,14,128540,128542,14,128544,128549,14,128552,128555,14,128557,128557,14,128560,128563,14,128565,128565,14,128567,128576,14,128581,128591,14,128641,128642,14,128646,128646,14,128648,128648,14,128650,128651,14,128653,128653,14,128655,128655,14,128657,128659,14,128661,128661,14,128663,128663,14,128665,128666,14,128674,128674,14,128676,128677,14,128679,128685,14,128690,128690,14,128694,128694,14,128697,128702,14,128704,128704,14,128710,128714,14,128716,128716,14,128720,128720,14,128723,128724,14,128726,128727,14,128733,128735,14,128742,128744,14,128746,128746,14,128749,128751,14,128753,128754,14,128756,128758,14,128761,128761,14,128763,128764,14,128884,128895,14,128992,129003,14,129008,129008,14,129036,129039,14,129114,129119,14,129198,129279,14,129293,129295,14,129305,129310,14,129312,129319,14,129328,129328,14,129331,129338,14,129343,129343,14,129351,129355,14,129357,129359,14,129375,129387,14,129393,129393,14,129395,129398,14,129401,129401,14,129403,129403,14,129408,129412,14,129426,129431,14,129443,129444,14,129451,129453,14,129456,129465,14,129472,129472,14,129475,129482,14,129484,129484,14,129488,129510,14,129536,129647,14,129652,129652,14,129656,129658,14,129661,129663,14,129667,129670,14,129680,129685,14,129705,129708,14,129712,129718,14,129723,129727,14,129731,129733,14,129744,129750,14,129754,129759,14,129768,129775,14,129783,129791,14,917504,917504,4,917506,917535,4,917632,917759,4,918000,921599,4,0,9,4,11,12,4,14,31,4,169,169,14,174,174,14,1155,1159,5,1425,1469,5,1473,1474,5,1479,1479,5,1552,1562,5,1611,1631,5,1750,1756,5,1759,1764,5,1770,1773,5,1809,1809,5,1958,1968,5,2045,2045,5,2075,2083,5,2089,2093,5,2192,2193,1,2250,2273,5,2275,2306,5,2362,2362,5,2364,2364,5,2369,2376,5,2381,2381,5,2385,2391,5,2433,2433,5,2492,2492,5,2495,2496,7,2503,2504,7,2509,2509,5,2530,2531,5,2561,2562,5,2620,2620,5,2625,2626,5,2635,2637,5,2672,2673,5,2689,2690,5,2748,2748,5,2753,2757,5,2761,2761,7,2765,2765,5,2810,2815,5,2818,2819,7,2878,2878,5,2880,2880,7,2887,2888,7,2893,2893,5,2903,2903,5,2946,2946,5,3007,3007,7,3009,3010,7,3018,3020,7,3031,3031,5,3073,3075,7,3132,3132,5,3137,3140,7,3146,3149,5,3170,3171,5,3202,3203,7,3262,3262,7,3264,3265,7,3267,3268,7,3271,3272,7,3276,3277,5,3298,3299,5,3330,3331,7,3390,3390,5,3393,3396,5,3402,3404,7,3406,3406,1,3426,3427,5,3458,3459,7,3535,3535,5,3538,3540,5,3544,3550,7,3570,3571,7,3635,3635,7,3655,3662,5,3763,3763,7,3784,3789,5,3893,3893,5,3897,3897,5,3953,3966,5,3968,3972,5,3981,3991,5,4038,4038,5,4145,4145,7,4153,4154,5,4157,4158,5,4184,4185,5,4209,4212,5,4228,4228,7,4237,4237,5,4352,4447,8,4520,4607,10,5906,5908,5,5938,5939,5,5970,5971,5,6068,6069,5,6071,6077,5,6086,6086,5,6089,6099,5,6155,6157,5,6159,6159,5,6313,6313,5,6435,6438,7,6441,6443,7,6450,6450,5,6457,6459,5,6681,6682,7,6741,6741,7,6743,6743,7,6752,6752,5,6757,6764,5,6771,6780,5,6832,6845,5,6847,6862,5,6916,6916,7,6965,6965,5,6971,6971,7,6973,6977,7,6979,6980,7,7040,7041,5,7073,7073,7,7078,7079,7,7082,7082,7,7142,7142,5,7144,7145,5,7149,7149,5,7151,7153,5,7204,7211,7,7220,7221,7,7376,7378,5,7393,7393,7,7405,7405,5,7415,7415,7,7616,7679,5,8204,8204,5,8206,8207,4,8233,8233,4,8252,8252,14,8288,8292,4,8294,8303,4,8413,8416,5,8418,8420,5,8482,8482,14,8596,8601,14,8986,8987,14,9096,9096,14,9193,9196,14,9199,9199,14,9201,9202,14,9208,9210,14,9642,9643,14,9664,9664,14,9728,9729,14,9732,9732,14,9735,9741,14,9743,9744,14,9746,9746,14,9750,9751,14,9753,9756,14,9758,9759,14,9761,9761,14,9764,9765,14,9767,9769,14,9771,9773,14,9775,9775,14,9784,9785,14,9787,9791,14,9793,9793,14,9795,9799,14,9812,9822,14,9824,9824,14,9827,9827,14,9829,9830,14,9832,9832,14,9851,9851,14,9854,9854,14,9856,9861,14,9874,9874,14,9876,9876,14,9878,9879,14,9881,9881,14,9883,9884,14,9888,9889,14,9895,9895,14,9898,9899,14,9904,9905,14,9917,9918,14,9924,9925,14,9928,9928,14,9934,9934,14,9936,9936,14,9938,9938,14,9940,9940,14,9961,9961,14,9963,9967,14,9970,9971,14,9973,9973,14,9975,9977,14,9979,9980,14,9982,9985,14,9987,9988,14,9992,9996,14,9998,9998,14,10000,10001,14,10004,10004,14,10013,10013,14,10024,10024,14,10052,10052,14,10060,10060,14,10067,10069,14,10083,10083,14,10085,10087,14,10145,10145,14,10175,10175,14,11013,11015,14,11088,11088,14,11503,11505,5,11744,11775,5,12334,12335,5,12349,12349,14,12951,12951,14,42607,42607,5,42612,42621,5,42736,42737,5,43014,43014,5,43043,43044,7,43047,43047,7,43136,43137,7,43204,43205,5,43263,43263,5,43335,43345,5,43360,43388,8,43395,43395,7,43444,43445,7,43450,43451,7,43454,43456,7,43561,43566,5,43569,43570,5,43573,43574,5,43596,43596,5,43644,43644,5,43698,43700,5,43710,43711,5,43755,43755,7,43758,43759,7,43766,43766,5,44005,44005,5,44008,44008,5,44012,44012,7,44032,44032,11,44060,44060,11,44088,44088,11,44116,44116,11,44144,44144,11,44172,44172,11,44200,44200,11,44228,44228,11,44256,44256,11,44284,44284,11,44312,44312,11,44340,44340,11,44368,44368,11,44396,44396,11,44424,44424,11,44452,44452,11,44480,44480,11,44508,44508,11,44536,44536,11,44564,44564,11,44592,44592,11,44620,44620,11,44648,44648,11,44676,44676,11,44704,44704,11,44732,44732,11,44760,44760,11,44788,44788,11,44816,44816,11,44844,44844,11,44872,44872,11,44900,44900,11,44928,44928,11,44956,44956,11,44984,44984,11,45012,45012,11,45040,45040,11,45068,45068,11,45096,45096,11,45124,45124,11,45152,45152,11,45180,45180,11,45208,45208,11,45236,45236,11,45264,45264,11,45292,45292,11,45320,45320,11,45348,45348,11,45376,45376,11,45404,45404,11,45432,45432,11,45460,45460,11,45488,45488,11,45516,45516,11,45544,45544,11,45572,45572,11,45600,45600,11,45628,45628,11,45656,45656,11,45684,45684,11,45712,45712,11,45740,45740,11,45768,45768,11,45796,45796,11,45824,45824,11,45852,45852,11,45880,45880,11,45908,45908,11,45936,45936,11,45964,45964,11,45992,45992,11,46020,46020,11,46048,46048,11,46076,46076,11,46104,46104,11,46132,46132,11,46160,46160,11,46188,46188,11,46216,46216,11,46244,46244,11,46272,46272,11,46300,46300,11,46328,46328,11,46356,46356,11,46384,46384,11,46412,46412,11,46440,46440,11,46468,46468,11,46496,46496,11,46524,46524,11,46552,46552,11,46580,46580,11,46608,46608,11,46636,46636,11,46664,46664,11,46692,46692,11,46720,46720,11,46748,46748,11,46776,46776,11,46804,46804,11,46832,46832,11,46860,46860,11,46888,46888,11,46916,46916,11,46944,46944,11,46972,46972,11,47000,47000,11,47028,47028,11,47056,47056,11,47084,47084,11,47112,47112,11,47140,47140,11,47168,47168,11,47196,47196,11,47224,47224,11,47252,47252,11,47280,47280,11,47308,47308,11,47336,47336,11,47364,47364,11,47392,47392,11,47420,47420,11,47448,47448,11,47476,47476,11,47504,47504,11,47532,47532,11,47560,47560,11,47588,47588,11,47616,47616,11,47644,47644,11,47672,47672,11,47700,47700,11,47728,47728,11,47756,47756,11,47784,47784,11,47812,47812,11,47840,47840,11,47868,47868,11,47896,47896,11,47924,47924,11,47952,47952,11,47980,47980,11,48008,48008,11,48036,48036,11,48064,48064,11,48092,48092,11,48120,48120,11,48148,48148,11,48176,48176,11,48204,48204,11,48232,48232,11,48260,48260,11,48288,48288,11,48316,48316,11,48344,48344,11,48372,48372,11,48400,48400,11,48428,48428,11,48456,48456,11,48484,48484,11,48512,48512,11,48540,48540,11,48568,48568,11,48596,48596,11,48624,48624,11,48652,48652,11,48680,48680,11,48708,48708,11,48736,48736,11,48764,48764,11,48792,48792,11,48820,48820,11,48848,48848,11,48876,48876,11,48904,48904,11,48932,48932,11,48960,48960,11,48988,48988,11,49016,49016,11,49044,49044,11,49072,49072,11,49100,49100,11,49128,49128,11,49156,49156,11,49184,49184,11,49212,49212,11,49240,49240,11,49268,49268,11,49296,49296,11,49324,49324,11,49352,49352,11,49380,49380,11,49408,49408,11,49436,49436,11,49464,49464,11,49492,49492,11,49520,49520,11,49548,49548,11,49576,49576,11,49604,49604,11,49632,49632,11,49660,49660,11,49688,49688,11,49716,49716,11,49744,49744,11,49772,49772,11,49800,49800,11,49828,49828,11,49856,49856,11,49884,49884,11,49912,49912,11,49940,49940,11,49968,49968,11,49996,49996,11,50024,50024,11,50052,50052,11,50080,50080,11,50108,50108,11,50136,50136,11,50164,50164,11,50192,50192,11,50220,50220,11,50248,50248,11,50276,50276,11,50304,50304,11,50332,50332,11,50360,50360,11,50388,50388,11,50416,50416,11,50444,50444,11,50472,50472,11,50500,50500,11,50528,50528,11,50556,50556,11,50584,50584,11,50612,50612,11,50640,50640,11,50668,50668,11,50696,50696,11,50724,50724,11,50752,50752,11,50780,50780,11,50808,50808,11,50836,50836,11,50864,50864,11,50892,50892,11,50920,50920,11,50948,50948,11,50976,50976,11,51004,51004,11,51032,51032,11,51060,51060,11,51088,51088,11,51116,51116,11,51144,51144,11,51172,51172,11,51200,51200,11,51228,51228,11,51256,51256,11,51284,51284,11,51312,51312,11,51340,51340,11,51368,51368,11,51396,51396,11,51424,51424,11,51452,51452,11,51480,51480,11,51508,51508,11,51536,51536,11,51564,51564,11,51592,51592,11,51620,51620,11,51648,51648,11,51676,51676,11,51704,51704,11,51732,51732,11,51760,51760,11,51788,51788,11,51816,51816,11,51844,51844,11,51872,51872,11,51900,51900,11,51928,51928,11,51956,51956,11,51984,51984,11,52012,52012,11,52040,52040,11,52068,52068,11,52096,52096,11,52124,52124,11,52152,52152,11,52180,52180,11,52208,52208,11,52236,52236,11,52264,52264,11,52292,52292,11,52320,52320,11,52348,52348,11,52376,52376,11,52404,52404,11,52432,52432,11,52460,52460,11,52488,52488,11,52516,52516,11,52544,52544,11,52572,52572,11,52600,52600,11,52628,52628,11,52656,52656,11,52684,52684,11,52712,52712,11,52740,52740,11,52768,52768,11,52796,52796,11,52824,52824,11,52852,52852,11,52880,52880,11,52908,52908,11,52936,52936,11,52964,52964,11,52992,52992,11,53020,53020,11,53048,53048,11,53076,53076,11,53104,53104,11,53132,53132,11,53160,53160,11,53188,53188,11,53216,53216,11,53244,53244,11,53272,53272,11,53300,53300,11,53328,53328,11,53356,53356,11,53384,53384,11,53412,53412,11,53440,53440,11,53468,53468,11,53496,53496,11,53524,53524,11,53552,53552,11,53580,53580,11,53608,53608,11,53636,53636,11,53664,53664,11,53692,53692,11,53720,53720,11,53748,53748,11,53776,53776,11,53804,53804,11,53832,53832,11,53860,53860,11,53888,53888,11,53916,53916,11,53944,53944,11,53972,53972,11,54000,54000,11,54028,54028,11,54056,54056,11,54084,54084,11,54112,54112,11,54140,54140,11,54168,54168,11,54196,54196,11,54224,54224,11,54252,54252,11,54280,54280,11,54308,54308,11,54336,54336,11,54364,54364,11,54392,54392,11,54420,54420,11,54448,54448,11,54476,54476,11,54504,54504,11,54532,54532,11,54560,54560,11,54588,54588,11,54616,54616,11,54644,54644,11,54672,54672,11,54700,54700,11,54728,54728,11,54756,54756,11,54784,54784,11,54812,54812,11,54840,54840,11,54868,54868,11,54896,54896,11,54924,54924,11,54952,54952,11,54980,54980,11,55008,55008,11,55036,55036,11,55064,55064,11,55092,55092,11,55120,55120,11,55148,55148,11,55176,55176,11,55216,55238,9,64286,64286,5,65056,65071,5,65438,65439,5,65529,65531,4,66272,66272,5,68097,68099,5,68108,68111,5,68159,68159,5,68900,68903,5,69446,69456,5,69632,69632,7,69634,69634,7,69744,69744,5,69759,69761,5,69808,69810,7,69815,69816,7,69821,69821,1,69837,69837,1,69927,69931,5,69933,69940,5,70003,70003,5,70018,70018,7,70070,70078,5,70082,70083,1,70094,70094,7,70188,70190,7,70194,70195,7,70197,70197,7,70206,70206,5,70368,70370,7,70400,70401,5,70459,70460,5,70463,70463,7,70465,70468,7,70475,70477,7,70498,70499,7,70512,70516,5,70712,70719,5,70722,70724,5,70726,70726,5,70832,70832,5,70835,70840,5,70842,70842,5,70845,70845,5,70847,70848,5,70850,70851,5,71088,71089,7,71096,71099,7,71102,71102,7,71132,71133,5,71219,71226,5,71229,71229,5,71231,71232,5,71340,71340,7,71342,71343,7,71350,71350,7,71453,71455,5,71462,71462,7,71724,71726,7,71736,71736,7,71984,71984,5,71991,71992,7,71997,71997,7,71999,71999,1,72001,72001,1,72003,72003,5,72148,72151,5,72156,72159,7,72164,72164,7,72243,72248,5,72250,72250,1,72263,72263,5,72279,72280,7,72324,72329,1,72343,72343,7,72751,72751,7,72760,72765,5,72767,72767,5,72873,72873,7,72881,72881,7,72884,72884,7,73009,73014,5,73020,73021,5,73030,73030,1,73098,73102,7,73107,73108,7,73110,73110,7,73459,73460,5,78896,78904,4,92976,92982,5,94033,94087,7,94180,94180,5,113821,113822,5,118528,118573,5,119141,119141,5,119143,119145,5,119150,119154,5,119163,119170,5,119210,119213,5,121344,121398,5,121461,121461,5,121499,121503,5,122880,122886,5,122907,122913,5,122918,122922,5,123566,123566,5,125136,125142,5,126976,126979,14,126981,127182,14,127184,127231,14,127279,127279,14,127344,127345,14,127374,127374,14,127405,127461,14,127489,127490,14,127514,127514,14,127538,127546,14,127561,127567,14,127570,127743,14,127757,127758,14,127760,127760,14,127762,127762,14,127766,127768,14,127770,127770,14,127772,127772,14,127775,127776,14,127778,127779,14,127789,127791,14,127794,127795,14,127798,127798,14,127819,127819,14,127824,127824,14,127868,127868,14,127870,127871,14,127892,127893,14,127896,127896,14,127900,127901,14,127904,127940,14,127942,127942,14,127944,127944,14,127946,127946,14,127951,127955,14,127968,127971,14,127973,127984,14,127987,127987,14,127989,127989,14,127991,127991,14,127995,127999,5,128008,128008,14,128012,128014,14,128017,128018,14,128020,128020,14,128022,128022,14,128042,128042,14,128063,128063,14,128065,128065,14,128101,128101,14,128108,128109,14,128173,128173,14,128182,128183,14,128236,128237,14,128239,128239,14,128245,128245,14,128248,128248,14,128253,128253,14,128255,128258,14,128260,128263,14,128265,128265,14,128277,128277,14,128300,128301,14,128326,128328,14,128331,128334,14,128336,128347,14,128360,128366,14,128369,128370,14,128378,128378,14,128391,128391,14,128394,128397,14,128400,128400,14,128405,128406,14,128420,128420,14,128422,128423,14,128425,128432,14,128435,128443,14,128445,128449,14,128453,128464,14,128468,128475,14,128479,128480,14,128482,128482,14,128484,128487,14,128489,128494,14,128496,128498,14,128500,128505,14,128507,128511,14,128513,128518,14,128521,128525,14,128527,128527,14,128529,128529,14,128533,128533,14,128535,128535,14,128537,128537,14]');\n}\n//#endregion\n/**\n * Computes the offset after performing a left delete on the given string,\n * while considering unicode grapheme/emoji rules.\n*/\nexport function getLeftDeleteOffset(offset, str) {\n if (offset === 0) {\n return 0;\n }\n // Try to delete emoji part.\n const emojiOffset = getOffsetBeforeLastEmojiComponent(offset, str);\n if (emojiOffset !== undefined) {\n return emojiOffset;\n }\n // Otherwise, just skip a single code point.\n const iterator = new CodePointIterator(str, offset);\n iterator.prevCodePoint();\n return iterator.offset;\n}\nfunction getOffsetBeforeLastEmojiComponent(initialOffset, str) {\n // See https://www.unicode.org/reports/tr51/tr51-14.html#EBNF_and_Regex for the\n // structure of emojis.\n const iterator = new CodePointIterator(str, initialOffset);\n let codePoint = iterator.prevCodePoint();\n // Skip modifiers\n while ((isEmojiModifier(codePoint) || codePoint === 65039 /* CodePoint.emojiVariantSelector */ || codePoint === 8419 /* CodePoint.enclosingKeyCap */)) {\n if (iterator.offset === 0) {\n // Cannot skip modifier, no preceding emoji base.\n return undefined;\n }\n codePoint = iterator.prevCodePoint();\n }\n // Expect base emoji\n if (!isEmojiImprecise(codePoint)) {\n // Unexpected code point, not a valid emoji.\n return undefined;\n }\n let resultOffset = iterator.offset;\n if (resultOffset > 0) {\n // Skip optional ZWJ code points that combine multiple emojis.\n // In theory, we should check if that ZWJ actually combines multiple emojis\n // to prevent deleting ZWJs in situations we didn't account for.\n const optionalZwjCodePoint = iterator.prevCodePoint();\n if (optionalZwjCodePoint === 8205 /* CodePoint.zwj */) {\n resultOffset = iterator.offset;\n }\n }\n return resultOffset;\n}\nfunction isEmojiModifier(codePoint) {\n return 0x1F3FB <= codePoint && codePoint <= 0x1F3FF;\n}\nexport const noBreakWhitespace = '\\xa0';\nexport class AmbiguousCharacters {\n static getInstance(locales) {\n return _a.cache.get(Array.from(locales));\n }\n static getLocales() {\n return _a._locales.value;\n }\n constructor(confusableDictionary) {\n this.confusableDictionary = confusableDictionary;\n }\n isAmbiguous(codePoint) {\n return this.confusableDictionary.has(codePoint);\n }\n /**\n * Returns the non basic ASCII code point that the given code point can be confused,\n * or undefined if such code point does note exist.\n */\n getPrimaryConfusable(codePoint) {\n return this.confusableDictionary.get(codePoint);\n }\n getConfusableCodePoints() {\n return new Set(this.confusableDictionary.keys());\n }\n}\n_a = AmbiguousCharacters;\nAmbiguousCharacters.ambiguousCharacterData = new Lazy(() => {\n // Generated using https://github.com/hediet/vscode-unicode-data\n // Stored as key1, value1, key2, value2, ...\n return JSON.parse('{\\\"_common\\\":[8232,32,8233,32,5760,32,8192,32,8193,32,8194,32,8195,32,8196,32,8197,32,8198,32,8200,32,8201,32,8202,32,8287,32,8199,32,8239,32,2042,95,65101,95,65102,95,65103,95,8208,45,8209,45,8210,45,65112,45,1748,45,8259,45,727,45,8722,45,10134,45,11450,45,1549,44,1643,44,8218,44,184,44,42233,44,894,59,2307,58,2691,58,1417,58,1795,58,1796,58,5868,58,65072,58,6147,58,6153,58,8282,58,1475,58,760,58,42889,58,8758,58,720,58,42237,58,451,33,11601,33,660,63,577,63,2429,63,5038,63,42731,63,119149,46,8228,46,1793,46,1794,46,42510,46,68176,46,1632,46,1776,46,42232,46,1373,96,65287,96,8219,96,8242,96,1370,96,1523,96,8175,96,65344,96,900,96,8189,96,8125,96,8127,96,8190,96,697,96,884,96,712,96,714,96,715,96,756,96,699,96,701,96,700,96,702,96,42892,96,1497,96,2036,96,2037,96,5194,96,5836,96,94033,96,94034,96,65339,91,10088,40,10098,40,12308,40,64830,40,65341,93,10089,41,10099,41,12309,41,64831,41,10100,123,119060,123,10101,125,65342,94,8270,42,1645,42,8727,42,66335,42,5941,47,8257,47,8725,47,8260,47,9585,47,10187,47,10744,47,119354,47,12755,47,12339,47,11462,47,20031,47,12035,47,65340,92,65128,92,8726,92,10189,92,10741,92,10745,92,119311,92,119355,92,12756,92,20022,92,12034,92,42872,38,708,94,710,94,5869,43,10133,43,66203,43,8249,60,10094,60,706,60,119350,60,5176,60,5810,60,5120,61,11840,61,12448,61,42239,61,8250,62,10095,62,707,62,119351,62,5171,62,94015,62,8275,126,732,126,8128,126,8764,126,65372,124,65293,45,120784,50,120794,50,120804,50,120814,50,120824,50,130034,50,42842,50,423,50,1000,50,42564,50,5311,50,42735,50,119302,51,120785,51,120795,51,120805,51,120815,51,120825,51,130035,51,42923,51,540,51,439,51,42858,51,11468,51,1248,51,94011,51,71882,51,120786,52,120796,52,120806,52,120816,52,120826,52,130036,52,5070,52,71855,52,120787,53,120797,53,120807,53,120817,53,120827,53,130037,53,444,53,71867,53,120788,54,120798,54,120808,54,120818,54,120828,54,130038,54,11474,54,5102,54,71893,54,119314,55,120789,55,120799,55,120809,55,120819,55,120829,55,130039,55,66770,55,71878,55,2819,56,2538,56,2666,56,125131,56,120790,56,120800,56,120810,56,120820,56,120830,56,130040,56,547,56,546,56,66330,56,2663,57,2920,57,2541,57,3437,57,120791,57,120801,57,120811,57,120821,57,120831,57,130041,57,42862,57,11466,57,71884,57,71852,57,71894,57,9082,97,65345,97,119834,97,119886,97,119938,97,119990,97,120042,97,120094,97,120146,97,120198,97,120250,97,120302,97,120354,97,120406,97,120458,97,593,97,945,97,120514,97,120572,97,120630,97,120688,97,120746,97,65313,65,119808,65,119860,65,119912,65,119964,65,120016,65,120068,65,120120,65,120172,65,120224,65,120276,65,120328,65,120380,65,120432,65,913,65,120488,65,120546,65,120604,65,120662,65,120720,65,5034,65,5573,65,42222,65,94016,65,66208,65,119835,98,119887,98,119939,98,119991,98,120043,98,120095,98,120147,98,120199,98,120251,98,120303,98,120355,98,120407,98,120459,98,388,98,5071,98,5234,98,5551,98,65314,66,8492,66,119809,66,119861,66,119913,66,120017,66,120069,66,120121,66,120173,66,120225,66,120277,66,120329,66,120381,66,120433,66,42932,66,914,66,120489,66,120547,66,120605,66,120663,66,120721,66,5108,66,5623,66,42192,66,66178,66,66209,66,66305,66,65347,99,8573,99,119836,99,119888,99,119940,99,119992,99,120044,99,120096,99,120148,99,120200,99,120252,99,120304,99,120356,99,120408,99,120460,99,7428,99,1010,99,11429,99,43951,99,66621,99,128844,67,71922,67,71913,67,65315,67,8557,67,8450,67,8493,67,119810,67,119862,67,119914,67,119966,67,120018,67,120174,67,120226,67,120278,67,120330,67,120382,67,120434,67,1017,67,11428,67,5087,67,42202,67,66210,67,66306,67,66581,67,66844,67,8574,100,8518,100,119837,100,119889,100,119941,100,119993,100,120045,100,120097,100,120149,100,120201,100,120253,100,120305,100,120357,100,120409,100,120461,100,1281,100,5095,100,5231,100,42194,100,8558,68,8517,68,119811,68,119863,68,119915,68,119967,68,120019,68,120071,68,120123,68,120175,68,120227,68,120279,68,120331,68,120383,68,120435,68,5024,68,5598,68,5610,68,42195,68,8494,101,65349,101,8495,101,8519,101,119838,101,119890,101,119942,101,120046,101,120098,101,120150,101,120202,101,120254,101,120306,101,120358,101,120410,101,120462,101,43826,101,1213,101,8959,69,65317,69,8496,69,119812,69,119864,69,119916,69,120020,69,120072,69,120124,69,120176,69,120228,69,120280,69,120332,69,120384,69,120436,69,917,69,120492,69,120550,69,120608,69,120666,69,120724,69,11577,69,5036,69,42224,69,71846,69,71854,69,66182,69,119839,102,119891,102,119943,102,119995,102,120047,102,120099,102,120151,102,120203,102,120255,102,120307,102,120359,102,120411,102,120463,102,43829,102,42905,102,383,102,7837,102,1412,102,119315,70,8497,70,119813,70,119865,70,119917,70,120021,70,120073,70,120125,70,120177,70,120229,70,120281,70,120333,70,120385,70,120437,70,42904,70,988,70,120778,70,5556,70,42205,70,71874,70,71842,70,66183,70,66213,70,66853,70,65351,103,8458,103,119840,103,119892,103,119944,103,120048,103,120100,103,120152,103,120204,103,120256,103,120308,103,120360,103,120412,103,120464,103,609,103,7555,103,397,103,1409,103,119814,71,119866,71,119918,71,119970,71,120022,71,120074,71,120126,71,120178,71,120230,71,120282,71,120334,71,120386,71,120438,71,1292,71,5056,71,5107,71,42198,71,65352,104,8462,104,119841,104,119945,104,119997,104,120049,104,120101,104,120153,104,120205,104,120257,104,120309,104,120361,104,120413,104,120465,104,1211,104,1392,104,5058,104,65320,72,8459,72,8460,72,8461,72,119815,72,119867,72,119919,72,120023,72,120179,72,120231,72,120283,72,120335,72,120387,72,120439,72,919,72,120494,72,120552,72,120610,72,120668,72,120726,72,11406,72,5051,72,5500,72,42215,72,66255,72,731,105,9075,105,65353,105,8560,105,8505,105,8520,105,119842,105,119894,105,119946,105,119998,105,120050,105,120102,105,120154,105,120206,105,120258,105,120310,105,120362,105,120414,105,120466,105,120484,105,618,105,617,105,953,105,8126,105,890,105,120522,105,120580,105,120638,105,120696,105,120754,105,1110,105,42567,105,1231,105,43893,105,5029,105,71875,105,65354,106,8521,106,119843,106,119895,106,119947,106,119999,106,120051,106,120103,106,120155,106,120207,106,120259,106,120311,106,120363,106,120415,106,120467,106,1011,106,1112,106,65322,74,119817,74,119869,74,119921,74,119973,74,120025,74,120077,74,120129,74,120181,74,120233,74,120285,74,120337,74,120389,74,120441,74,42930,74,895,74,1032,74,5035,74,5261,74,42201,74,119844,107,119896,107,119948,107,120000,107,120052,107,120104,107,120156,107,120208,107,120260,107,120312,107,120364,107,120416,107,120468,107,8490,75,65323,75,119818,75,119870,75,119922,75,119974,75,120026,75,120078,75,120130,75,120182,75,120234,75,120286,75,120338,75,120390,75,120442,75,922,75,120497,75,120555,75,120613,75,120671,75,120729,75,11412,75,5094,75,5845,75,42199,75,66840,75,1472,108,8739,73,9213,73,65512,73,1633,108,1777,73,66336,108,125127,108,120783,73,120793,73,120803,73,120813,73,120823,73,130033,73,65321,73,8544,73,8464,73,8465,73,119816,73,119868,73,119920,73,120024,73,120128,73,120180,73,120232,73,120284,73,120336,73,120388,73,120440,73,65356,108,8572,73,8467,108,119845,108,119897,108,119949,108,120001,108,120053,108,120105,73,120157,73,120209,73,120261,73,120313,73,120365,73,120417,73,120469,73,448,73,120496,73,120554,73,120612,73,120670,73,120728,73,11410,73,1030,73,1216,73,1493,108,1503,108,1575,108,126464,108,126592,108,65166,108,65165,108,1994,108,11599,73,5825,73,42226,73,93992,73,66186,124,66313,124,119338,76,8556,76,8466,76,119819,76,119871,76,119923,76,120027,76,120079,76,120131,76,120183,76,120235,76,120287,76,120339,76,120391,76,120443,76,11472,76,5086,76,5290,76,42209,76,93974,76,71843,76,71858,76,66587,76,66854,76,65325,77,8559,77,8499,77,119820,77,119872,77,119924,77,120028,77,120080,77,120132,77,120184,77,120236,77,120288,77,120340,77,120392,77,120444,77,924,77,120499,77,120557,77,120615,77,120673,77,120731,77,1018,77,11416,77,5047,77,5616,77,5846,77,42207,77,66224,77,66321,77,119847,110,119899,110,119951,110,120003,110,120055,110,120107,110,120159,110,120211,110,120263,110,120315,110,120367,110,120419,110,120471,110,1400,110,1404,110,65326,78,8469,78,119821,78,119873,78,119925,78,119977,78,120029,78,120081,78,120185,78,120237,78,120289,78,120341,78,120393,78,120445,78,925,78,120500,78,120558,78,120616,78,120674,78,120732,78,11418,78,42208,78,66835,78,3074,111,3202,111,3330,111,3458,111,2406,111,2662,111,2790,111,3046,111,3174,111,3302,111,3430,111,3664,111,3792,111,4160,111,1637,111,1781,111,65359,111,8500,111,119848,111,119900,111,119952,111,120056,111,120108,111,120160,111,120212,111,120264,111,120316,111,120368,111,120420,111,120472,111,7439,111,7441,111,43837,111,959,111,120528,111,120586,111,120644,111,120702,111,120760,111,963,111,120532,111,120590,111,120648,111,120706,111,120764,111,11423,111,4351,111,1413,111,1505,111,1607,111,126500,111,126564,111,126596,111,65259,111,65260,111,65258,111,65257,111,1726,111,64428,111,64429,111,64427,111,64426,111,1729,111,64424,111,64425,111,64423,111,64422,111,1749,111,3360,111,4125,111,66794,111,71880,111,71895,111,66604,111,1984,79,2534,79,2918,79,12295,79,70864,79,71904,79,120782,79,120792,79,120802,79,120812,79,120822,79,130032,79,65327,79,119822,79,119874,79,119926,79,119978,79,120030,79,120082,79,120134,79,120186,79,120238,79,120290,79,120342,79,120394,79,120446,79,927,79,120502,79,120560,79,120618,79,120676,79,120734,79,11422,79,1365,79,11604,79,4816,79,2848,79,66754,79,42227,79,71861,79,66194,79,66219,79,66564,79,66838,79,9076,112,65360,112,119849,112,119901,112,119953,112,120005,112,120057,112,120109,112,120161,112,120213,112,120265,112,120317,112,120369,112,120421,112,120473,112,961,112,120530,112,120544,112,120588,112,120602,112,120646,112,120660,112,120704,112,120718,112,120762,112,120776,112,11427,112,65328,80,8473,80,119823,80,119875,80,119927,80,119979,80,120031,80,120083,80,120187,80,120239,80,120291,80,120343,80,120395,80,120447,80,929,80,120504,80,120562,80,120620,80,120678,80,120736,80,11426,80,5090,80,5229,80,42193,80,66197,80,119850,113,119902,113,119954,113,120006,113,120058,113,120110,113,120162,113,120214,113,120266,113,120318,113,120370,113,120422,113,120474,113,1307,113,1379,113,1382,113,8474,81,119824,81,119876,81,119928,81,119980,81,120032,81,120084,81,120188,81,120240,81,120292,81,120344,81,120396,81,120448,81,11605,81,119851,114,119903,114,119955,114,120007,114,120059,114,120111,114,120163,114,120215,114,120267,114,120319,114,120371,114,120423,114,120475,114,43847,114,43848,114,7462,114,11397,114,43905,114,119318,82,8475,82,8476,82,8477,82,119825,82,119877,82,119929,82,120033,82,120189,82,120241,82,120293,82,120345,82,120397,82,120449,82,422,82,5025,82,5074,82,66740,82,5511,82,42211,82,94005,82,65363,115,119852,115,119904,115,119956,115,120008,115,120060,115,120112,115,120164,115,120216,115,120268,115,120320,115,120372,115,120424,115,120476,115,42801,115,445,115,1109,115,43946,115,71873,115,66632,115,65331,83,119826,83,119878,83,119930,83,119982,83,120034,83,120086,83,120138,83,120190,83,120242,83,120294,83,120346,83,120398,83,120450,83,1029,83,1359,83,5077,83,5082,83,42210,83,94010,83,66198,83,66592,83,119853,116,119905,116,119957,116,120009,116,120061,116,120113,116,120165,116,120217,116,120269,116,120321,116,120373,116,120425,116,120477,116,8868,84,10201,84,128872,84,65332,84,119827,84,119879,84,119931,84,119983,84,120035,84,120087,84,120139,84,120191,84,120243,84,120295,84,120347,84,120399,84,120451,84,932,84,120507,84,120565,84,120623,84,120681,84,120739,84,11430,84,5026,84,42196,84,93962,84,71868,84,66199,84,66225,84,66325,84,119854,117,119906,117,119958,117,120010,117,120062,117,120114,117,120166,117,120218,117,120270,117,120322,117,120374,117,120426,117,120478,117,42911,117,7452,117,43854,117,43858,117,651,117,965,117,120534,117,120592,117,120650,117,120708,117,120766,117,1405,117,66806,117,71896,117,8746,85,8899,85,119828,85,119880,85,119932,85,119984,85,120036,85,120088,85,120140,85,120192,85,120244,85,120296,85,120348,85,120400,85,120452,85,1357,85,4608,85,66766,85,5196,85,42228,85,94018,85,71864,85,8744,118,8897,118,65366,118,8564,118,119855,118,119907,118,119959,118,120011,118,120063,118,120115,118,120167,118,120219,118,120271,118,120323,118,120375,118,120427,118,120479,118,7456,118,957,118,120526,118,120584,118,120642,118,120700,118,120758,118,1141,118,1496,118,71430,118,43945,118,71872,118,119309,86,1639,86,1783,86,8548,86,119829,86,119881,86,119933,86,119985,86,120037,86,120089,86,120141,86,120193,86,120245,86,120297,86,120349,86,120401,86,120453,86,1140,86,11576,86,5081,86,5167,86,42719,86,42214,86,93960,86,71840,86,66845,86,623,119,119856,119,119908,119,119960,119,120012,119,120064,119,120116,119,120168,119,120220,119,120272,119,120324,119,120376,119,120428,119,120480,119,7457,119,1121,119,1309,119,1377,119,71434,119,71438,119,71439,119,43907,119,71919,87,71910,87,119830,87,119882,87,119934,87,119986,87,120038,87,120090,87,120142,87,120194,87,120246,87,120298,87,120350,87,120402,87,120454,87,1308,87,5043,87,5076,87,42218,87,5742,120,10539,120,10540,120,10799,120,65368,120,8569,120,119857,120,119909,120,119961,120,120013,120,120065,120,120117,120,120169,120,120221,120,120273,120,120325,120,120377,120,120429,120,120481,120,5441,120,5501,120,5741,88,9587,88,66338,88,71916,88,65336,88,8553,88,119831,88,119883,88,119935,88,119987,88,120039,88,120091,88,120143,88,120195,88,120247,88,120299,88,120351,88,120403,88,120455,88,42931,88,935,88,120510,88,120568,88,120626,88,120684,88,120742,88,11436,88,11613,88,5815,88,42219,88,66192,88,66228,88,66327,88,66855,88,611,121,7564,121,65369,121,119858,121,119910,121,119962,121,120014,121,120066,121,120118,121,120170,121,120222,121,120274,121,120326,121,120378,121,120430,121,120482,121,655,121,7935,121,43866,121,947,121,8509,121,120516,121,120574,121,120632,121,120690,121,120748,121,1199,121,4327,121,71900,121,65337,89,119832,89,119884,89,119936,89,119988,89,120040,89,120092,89,120144,89,120196,89,120248,89,120300,89,120352,89,120404,89,120456,89,933,89,978,89,120508,89,120566,89,120624,89,120682,89,120740,89,11432,89,1198,89,5033,89,5053,89,42220,89,94019,89,71844,89,66226,89,119859,122,119911,122,119963,122,120015,122,120067,122,120119,122,120171,122,120223,122,120275,122,120327,122,120379,122,120431,122,120483,122,7458,122,43923,122,71876,122,66293,90,71909,90,65338,90,8484,90,8488,90,119833,90,119885,90,119937,90,119989,90,120041,90,120197,90,120249,90,120301,90,120353,90,120405,90,120457,90,918,90,120493,90,120551,90,120609,90,120667,90,120725,90,5059,90,42204,90,71849,90,65282,34,65284,36,65285,37,65286,38,65290,42,65291,43,65294,46,65295,47,65296,48,65297,49,65298,50,65299,51,65300,52,65301,53,65302,54,65303,55,65304,56,65305,57,65308,60,65309,61,65310,62,65312,64,65316,68,65318,70,65319,71,65324,76,65329,81,65330,82,65333,85,65334,86,65335,87,65343,95,65346,98,65348,100,65350,102,65355,107,65357,109,65358,110,65361,113,65362,114,65364,116,65365,117,65367,119,65370,122,65371,123,65373,125,119846,109],\\\"_default\\\":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\\\"cs\\\":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\\\"de\\\":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\\\"es\\\":[8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\\\"fr\\\":[65374,126,65306,58,65281,33,8216,96,8245,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\\\"it\\\":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\\\"ja\\\":[8211,45,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65292,44,65307,59],\\\"ko\\\":[8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\\\"pl\\\":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\\\"pt-BR\\\":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\\\"qps-ploc\\\":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\\\"ru\\\":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,305,105,921,73,1009,112,215,120,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\\\"tr\\\":[160,32,8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\\\"zh-hans\\\":[65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41],\\\"zh-hant\\\":[8211,45,65374,126,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65307,59]}');\n});\nAmbiguousCharacters.cache = new LRUCachedFunction({ getCacheKey: JSON.stringify }, (locales) => {\n function arrayToMap(arr) {\n const result = new Map();\n for (let i = 0; i < arr.length; i += 2) {\n result.set(arr[i], arr[i + 1]);\n }\n return result;\n }\n function mergeMaps(map1, map2) {\n const result = new Map(map1);\n for (const [key, value] of map2) {\n result.set(key, value);\n }\n return result;\n }\n function intersectMaps(map1, map2) {\n if (!map1) {\n return map2;\n }\n const result = new Map();\n for (const [key, value] of map1) {\n if (map2.has(key)) {\n result.set(key, value);\n }\n }\n return result;\n }\n const data = _a.ambiguousCharacterData.value;\n let filteredLocales = locales.filter((l) => !l.startsWith('_') && l in data);\n if (filteredLocales.length === 0) {\n filteredLocales = ['_default'];\n }\n let languageSpecificMap = undefined;\n for (const locale of filteredLocales) {\n const map = arrayToMap(data[locale]);\n languageSpecificMap = intersectMaps(languageSpecificMap, map);\n }\n const commonMap = arrayToMap(data['_common']);\n const map = mergeMaps(commonMap, languageSpecificMap);\n return new _a(map);\n});\nAmbiguousCharacters._locales = new Lazy(() => Object.keys(_a.ambiguousCharacterData.value).filter((k) => !k.startsWith('_')));\nexport class InvisibleCharacters {\n static getRawData() {\n // Generated using https://github.com/hediet/vscode-unicode-data\n return JSON.parse('[9,10,11,12,13,32,127,160,173,847,1564,4447,4448,6068,6069,6155,6156,6157,6158,7355,7356,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8203,8204,8205,8206,8207,8234,8235,8236,8237,8238,8239,8287,8288,8289,8290,8291,8292,8293,8294,8295,8296,8297,8298,8299,8300,8301,8302,8303,10240,12288,12644,65024,65025,65026,65027,65028,65029,65030,65031,65032,65033,65034,65035,65036,65037,65038,65039,65279,65440,65520,65521,65522,65523,65524,65525,65526,65527,65528,65532,78844,119155,119156,119157,119158,119159,119160,119161,119162,917504,917505,917506,917507,917508,917509,917510,917511,917512,917513,917514,917515,917516,917517,917518,917519,917520,917521,917522,917523,917524,917525,917526,917527,917528,917529,917530,917531,917532,917533,917534,917535,917536,917537,917538,917539,917540,917541,917542,917543,917544,917545,917546,917547,917548,917549,917550,917551,917552,917553,917554,917555,917556,917557,917558,917559,917560,917561,917562,917563,917564,917565,917566,917567,917568,917569,917570,917571,917572,917573,917574,917575,917576,917577,917578,917579,917580,917581,917582,917583,917584,917585,917586,917587,917588,917589,917590,917591,917592,917593,917594,917595,917596,917597,917598,917599,917600,917601,917602,917603,917604,917605,917606,917607,917608,917609,917610,917611,917612,917613,917614,917615,917616,917617,917618,917619,917620,917621,917622,917623,917624,917625,917626,917627,917628,917629,917630,917631,917760,917761,917762,917763,917764,917765,917766,917767,917768,917769,917770,917771,917772,917773,917774,917775,917776,917777,917778,917779,917780,917781,917782,917783,917784,917785,917786,917787,917788,917789,917790,917791,917792,917793,917794,917795,917796,917797,917798,917799,917800,917801,917802,917803,917804,917805,917806,917807,917808,917809,917810,917811,917812,917813,917814,917815,917816,917817,917818,917819,917820,917821,917822,917823,917824,917825,917826,917827,917828,917829,917830,917831,917832,917833,917834,917835,917836,917837,917838,917839,917840,917841,917842,917843,917844,917845,917846,917847,917848,917849,917850,917851,917852,917853,917854,917855,917856,917857,917858,917859,917860,917861,917862,917863,917864,917865,917866,917867,917868,917869,917870,917871,917872,917873,917874,917875,917876,917877,917878,917879,917880,917881,917882,917883,917884,917885,917886,917887,917888,917889,917890,917891,917892,917893,917894,917895,917896,917897,917898,917899,917900,917901,917902,917903,917904,917905,917906,917907,917908,917909,917910,917911,917912,917913,917914,917915,917916,917917,917918,917919,917920,917921,917922,917923,917924,917925,917926,917927,917928,917929,917930,917931,917932,917933,917934,917935,917936,917937,917938,917939,917940,917941,917942,917943,917944,917945,917946,917947,917948,917949,917950,917951,917952,917953,917954,917955,917956,917957,917958,917959,917960,917961,917962,917963,917964,917965,917966,917967,917968,917969,917970,917971,917972,917973,917974,917975,917976,917977,917978,917979,917980,917981,917982,917983,917984,917985,917986,917987,917988,917989,917990,917991,917992,917993,917994,917995,917996,917997,917998,917999]');\n }\n static getData() {\n if (!this._data) {\n this._data = new Set(InvisibleCharacters.getRawData());\n }\n return this._data;\n }\n static isInvisibleCharacter(codePoint) {\n return InvisibleCharacters.getData().has(codePoint);\n }\n static get codePoints() {\n return InvisibleCharacters.getData();\n }\n}\nInvisibleCharacters._data = undefined;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n/**\n * Can be passed into the Delayed to defer using a microtask\n * */\nexport const MicrotaskDelay = Symbol('MicrotaskDelay');\n"],"names":["_a","_b","LANGUAGE_DEFAULT","_locale","_userAgent","_isWindows","_isMacintosh","_isLinux","_isLinuxSnap","_isNative","_isWeb","_isElectron","_isIOS","_isCI","_isMobile","_language","_platformLocale","_translationsConfigFile","$globalThis","globalThis","nodeProcess","vscode","process","versions","node","isElectronProcess","electron","isElectronRenderer","type","platform","env","rawNlsConfig","nlsConfig","JSON","parse","resolved","availableLanguages","locale","osLocale","e","navigator","console","error","userAgent","indexOf","maxTouchPoints","key","comment","language","_platform","isWindows","isMacintosh","isLinux","isNative","isWeb","webWorkerOrigin","importScripts","origin","undefined","isIOS","isMobile","setTimeout0IsFaster","postMessage","setTimeout0","pending","addEventListener","data","vscodeScheduleAsyncWork","i","len","length","candidate","id","splice","callback","lastId","myId","push","setTimeout","OS","_isLittleEndian","_isLittleEndianComputed","isLittleEndian","test","Uint8Array","view","Uint16Array","buffer","isChrome","isFirefox","isSafari","isEdge","isAndroid","safeProcess","vscodeGlobal","sandboxProcess","arch","cwd","Range","intersect","one","other","start","end","Math","max","min","isEmpty","range","intersects","relativeComplement","result","first","second","originalFSPath","uri","ExtUri","constructor","_ignorePathCasing","this","compare","uri1","uri2","ignoreFragment","getComparisonKey","isEqual","with","path","toLowerCase","fragment","toString","isEqualOrParent","base","parentCandidate","scheme","query","isEqualAuthority","authority","joinPath","resource","pathFragment","basenameOrAuthority","basename","extname","dirname","charCodeAt","normalizePath","normalizedPath","relativePath","from","to","fromPath","toPath","charAt","substr","resolvePath","newURI","isAbsolutePath","a1","a2","hasTrailingPathSeparator","sep","fsp","p","fsPath","removeTrailingPathSeparator","addTrailingPathSeparator","isRootSep","extUri","_","bind","DataUri","META_DATA_LABEL","META_DATA_DESCRIPTION","META_DATA_SIZE","META_DATA_MIME","parseMetaData","dataUri","metadata","Map","substring","lastIndexOf","split","forEach","property","value","set","mime","ScrollState","_forceIntegerValues","width","scrollWidth","scrollLeft","height","scrollHeight","scrollTop","_scrollStateBrand","rawScrollLeft","rawScrollTop","equals","withScrollDimensions","update","useRawScrollPositions","withScrollPosition","createScrollEvent","previous","inSmoothScrolling","widthChanged","scrollWidthChanged","scrollLeftChanged","heightChanged","scrollHeightChanged","scrollTopChanged","oldWidth","oldScrollWidth","oldScrollLeft","oldHeight","oldScrollHeight","oldScrollTop","Scrollable","options","super","_scrollableBrand","_onScroll","_register","onScroll","event","_smoothScrollDuration","smoothScrollDuration","_scheduleAtNextAnimationFrame","scheduleAtNextAnimationFrame","_state","forceIntegerValues","_smoothScrolling","dispose","setSmoothScrollDuration","validateScrollPosition","scrollPosition","getScrollDimensions","setScrollDimensions","dimensions","newState","_setState","Boolean","acceptScrollDimensions","getFutureScrollPosition","getCurrentScrollPosition","setScrollPositionNow","setScrollPositionSmooth","reuseAnimation","validTarget","newSmoothScrolling","SmoothScrollingOperation","startTime","duration","combine","animationFrameDisposable","_performSmoothScrolling","hasPendingScrollAnimation","tick","isDone","oldState","fire","SmoothScrollingUpdate","createEaseOutCubic","delta","completion","t","pow","easeInCubic","_initAnimations","_initAnimation","viewportSize","abs","stop1","stop2","a","b","cut","state","_tick","Date","now","newScrollLeft","newScrollTop","buildReplaceStringWithCasePreserved","matches","pattern","containsHyphens","validateSpecificSpecialCharacter","containsUnderscores","buildReplaceStringForSpecificSpecialCharacter","toUpperCase","specialCharacter","splitPatternAtSpecialCharacter","splitMatchAtSpecialCharacter","replaceString","splitValue","index","slice","Severity","_error","_warning","_info","fromValue","Error","Warning","Info","Ignore","severity","hasPerformanceNow","performance","StopWatch","create","highResolution","_now","_startTime","_stopTime","stop","reset","elapsed","isFalsyOrWhitespace","str","trim","_formatRegexp","format","args","replace","match","group","idx","parseInt","isNaN","htmlAttributeEncodeValue","ch","escape","html","escapeRegExpCharacters","haystack","needle","rtrim","ltrim","needleLen","offset","haystackLen","convertSimple2RegExpPattern","stripWildcards","createRegExp","searchString","isRegex","wholeWord","modifiers","global","matchCase","multiline","unicode","RegExp","regExpLeadsToEndlessLoop","regexp","source","exec","lastIndex","splitLines","splitLinesIncludeSeparators","linesWithSeparators","splitLinesAndSeparators","ceil","firstNonWhitespaceIndex","chCode","getLeadingWhitespace","lastNonWhitespaceIndex","startIndex","compareSubstring","aStart","aEnd","bStart","bEnd","codeA","codeB","aLen","bLen","compareIgnoreCase","compareSubstringIgnoreCase","isLowerAsciiLetter","diff","isAsciiDigit","code","isUpperAsciiLetter","equalsIgnoreCase","startsWithIgnoreCase","candidateLength","commonPrefixLength","commonSuffixLength","aLastIndex","bLastIndex","isHighSurrogate","charCode","isLowSurrogate","computeCodePoint","highSurrogate","lowSurrogate","getNextCodePoint","nextCharCode","CodePointIterator","_offset","_str","_len","setOffset","prevCodePoint","codePoint","prevCharCode","getPrevCodePoint","nextCodePoint","eol","GraphemeIterator","_iterator","nextGraphemeLength","graphemeBreakTree","GraphemeBreakTree","getInstance","iterator","initialOffset","graphemeBreakType","getGraphemeBreakType","nextGraphemeBreakType","breakBetweenGraphemeBreakType","prevGraphemeLength","prevGraphemeBreakType","nextCharLength","prevCharLength","getCharContainingOffset","endOffset","CONTAINS_RTL","containsRTL","IS_BASIC_ASCII","isBasicASCII","UNUSUAL_LINE_TERMINATORS","containsUnusualLineTerminators","isFullWidthCharacter","isEmojiImprecise","x","UTF8_BOM_CHARACTER","String","fromCharCode","startsWithUTF8BOM","containsUppercaseCharacter","target","ignoreEscapedChars","singleLetterHash","n","breakTypeA","breakTypeB","_INSTANCE","_data","nodeCount","nodeIndex","getLeftDeleteOffset","emojiOffset","isEmojiModifier","resultOffset","getOffsetBeforeLastEmojiComponent","noBreakWhitespace","AmbiguousCharacters","locales","cache","get","Array","getLocales","_locales","confusableDictionary","isAmbiguous","has","getPrimaryConfusable","getConfusableCodePoints","Set","keys","ambiguousCharacterData","getCacheKey","stringify","arrayToMap","arr","intersectMaps","map1","map2","languageSpecificMap","filteredLocales","filter","l","startsWith","map","mergeMaps","Object","k","InvisibleCharacters","getRawData","getData","isInvisibleCharacter","codePoints","MicrotaskDelay","Symbol"],"sourceRoot":""}